release.sh: гейт «определение раньше вызова» больше не обрывает релиз (set -e + пустой grep)
This commit is contained in:
+3
-2
@@ -51,8 +51,9 @@ 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)
|
||||
# || true обязателен: без него grep, не найдя совпадений, возвращает 1 и set -e молча обрывает релиз.
|
||||
d=$(grep -n "^$fn()" scripts/3x-ui-local.sh | head -1 | cut -d: -f1 || true)
|
||||
c=$(grep -n "^[^#]*[^a-z_]$fn[ ;\"]" scripts/3x-ui-local.sh | grep -v "^${d:-0}:" | head -1 | cut -d: -f1 || true)
|
||||
[[ -n $d ]] || die "scripts/3x-ui-local.sh: функция $fn не определена, а вызывается"
|
||||
[[ -z $c || $c -gt $d ]] || die "scripts/3x-ui-local.sh: $fn вызывается (строка $c) раньше, чем определена ($d)"
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user