Compare commits
No commits in common. "7e2bd241fbab97190a00626b7382b317c3921cc8" and "01d6bf5cd8b434ce43f1c77a8aeea2bdfa3659d2" have entirely different histories.
7e2bd241fb
...
01d6bf5cd8
1 changed files with 1 additions and 28 deletions
|
|
@ -250,21 +250,15 @@ declare -a ORDERED_DOMS=()
|
|||
|
||||
for dom in $(printf '%s\n' "${!EXPANDED[@]}" | sort -u); do
|
||||
[[ "${SOURCES[$dom]:-}" == "related" ]] && continue
|
||||
# Базовый домен мог быть добавлен как related другим базовым доменом раньше по
|
||||
# алфавиту — пропускаем, чтобы не дублировать запись в конфиге.
|
||||
[[ -n "${WRITTEN[$dom]:-}" ]] && continue
|
||||
|
||||
# Собираем ещё не записанные связанные домены.
|
||||
# while выполняется в subshell — читает снимок WRITTEN, что корректно исключает
|
||||
# домены, уже занятые предыдущим базовым доменом.
|
||||
# Базовые домены (SOURCES==base) пропускаем — у них будет своя секция.
|
||||
mapfile -t base_related < <(
|
||||
if [[ -n "${SITE_RELATED[$dom]:-}" ]]; then
|
||||
tr ' ' '\n' <<< "${SITE_RELATED[$dom]}" | grep -v '^$' | sort -u | \
|
||||
while IFS= read -r rd; do
|
||||
[[ -n "${WRITTEN[$rd]:-}" ]] && continue
|
||||
[[ "${SOURCES[$rd]:-}" == "base" ]] && continue
|
||||
printf '%s\n' "$rd"
|
||||
[[ -z "${WRITTEN[$rd]:-}" ]] && printf '%s\n' "$rd"
|
||||
done
|
||||
fi
|
||||
)
|
||||
|
|
@ -287,27 +281,6 @@ done
|
|||
|
||||
mapfile -t ALL_DOMAINS < <(printf "%s\n" "${!EXPANDED[@]}" | sort -u)
|
||||
|
||||
# ==============================
|
||||
# Проверка уникальности ORDERED_DOMS перед записью
|
||||
# ==============================
|
||||
declare -A _seen=()
|
||||
declare -a _dups=()
|
||||
for _d in "${ORDERED_DOMS[@]}"; do
|
||||
if [[ -n "${_seen[$_d]:-}" ]]; then
|
||||
_dups+=("$_d")
|
||||
fi
|
||||
_seen["$_d"]=1
|
||||
done
|
||||
unset _seen
|
||||
|
||||
if [[ ${#_dups[@]} -gt 0 ]]; then
|
||||
err "BUG: ${#_dups[@]} duplicate domain(s) found in output list — config NOT written"
|
||||
for _d in "${_dups[@]}"; do
|
||||
err " duplicate: $_d"
|
||||
done
|
||||
exit 5
|
||||
fi
|
||||
|
||||
# Записываем конфиги одним батчем (не по одной строке через >>)
|
||||
if ! $DRY_RUN; then
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue