fix: read install prompts from terminal

This commit is contained in:
andrey271192
2026-06-08 18:33:52 +03:00
parent 34654fdc85
commit 77b9160f55

View File

@@ -48,7 +48,13 @@ prompt() {
if [[ -n "${!var_name:-}" ]]; then if [[ -n "${!var_name:-}" ]]; then
return 0 return 0
fi fi
read -rp "${prompt_text} [${default_val}]: " input if [[ -r /dev/tty ]]; then
printf "%s [%s]: " "${prompt_text}" "${default_val}" > /dev/tty
IFS= read -r input < /dev/tty
else
input=""
echo "${prompt_text} [${default_val}]: ${default_val}"
fi
if [[ -z "${input}" ]]; then if [[ -z "${input}" ]]; then
printf -v "${var_name}" '%s' "${default_val}" printf -v "${var_name}" '%s' "${default_val}"
else else
@@ -74,8 +80,14 @@ prompt WARP_WEBUI_USER "Логин администратора веб-пане
if [[ -z "${WARP_WEBUI_PASS:-}" ]]; then if [[ -z "${WARP_WEBUI_PASS:-}" ]]; then
while true; do while true; do
read -rsp "Пароль администратора (минимум 8 символов): " WARP_WEBUI_PASS if [[ ! -r /dev/tty ]]; then
echo echo "WARP_WEBUI_PASS не задан, а интерактивный терминал недоступен."
echo "Передайте пароль через переменную окружения WARP_WEBUI_PASS."
exit 1
fi
printf "Пароль администратора (минимум 8 символов): " > /dev/tty
IFS= read -r -s WARP_WEBUI_PASS < /dev/tty
printf "\n" > /dev/tty
if [[ "${#WARP_WEBUI_PASS}" -ge 8 ]]; then if [[ "${#WARP_WEBUI_PASS}" -ge 8 ]]; then
break break
fi fi