v1.2.16: возвращён ask_yes; гейт на «определение раньше вызова»

This commit is contained in:
2026-10-13 23:34:02 +03:00
parent fa9e7225ea
commit c261d27b80
7 changed files with 35 additions and 5 deletions
+10
View File
@@ -48,6 +48,16 @@ if grep -qE "command not found|syntax error|bad substitution" <<<"$err"; then
fi
ok "Установщик не ругается на пустые строки и опечатки"
# Наши функции в установщике обязаны быть определены РАНЬШЕ первого вызова: `bash -n` и холостой
# прогон этого не видят, а человек видит «command not found» посреди установки (так и было 13.10).
for fn in ask_yes ask_ssh_port ssh_ports_now ask_protocols proto_parse proto_menu interactive clean_previous installer_failed; do
d=$(grep -n "^$fn()" scripts/3x-ui-local.sh | head -1 | cut -d: -f1)
c=$(grep -n "^[^#]*[^a-z_]$fn[ ;\"]" scripts/3x-ui-local.sh | grep -v "^$d:" | head -1 | cut -d: -f1)
[[ -n $d ]] || die "scripts/3x-ui-local.sh: функция $fn не определена, а вызывается"
[[ -z $c || $c -gt $d ]] || die "scripts/3x-ui-local.sh: $fn вызывается (строка $c) раньше, чем определена ($d)"
done
ok "Все наши функции определены раньше своих вызовов"
[[ -z $(git status --porcelain -- "${FILES[@]}" CHANGELOG.md FORK-CHANGELOG.md) ]] || die "Есть незакоммиченные изменения в файлах релиза – сначала коммит."
# Установщик 3X-UI: хеш в скрипте должен совпадать с тем, что сейчас лежит на GitHub.