fix: support noninteractive install

This commit is contained in:
Андрей Бобырев
2026-06-05 18:01:17 +03:00
parent de87097720
commit ca92735c55

View File

@@ -2,7 +2,8 @@
# WARP Web UI — установка одной командой (Debian/Ubuntu, от root) # WARP Web UI — установка одной командой (Debian/Ubuntu, от root)
set -euo pipefail set -euo pipefail
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_PATH="${BASH_SOURCE[0]:-$0}"
REPO_DIR="$(cd "$(dirname "${SCRIPT_PATH}")" && pwd)"
INSTALL_DIR="${WARP_WEBUI_INSTALL_DIR:-/opt/warp-webui}" INSTALL_DIR="${WARP_WEBUI_INSTALL_DIR:-/opt/warp-webui}"
ENV_FILE="/etc/default/warp-webui" ENV_FILE="/etc/default/warp-webui"
SERVICE_NAME="warp-webui" SERVICE_NAME="warp-webui"
@@ -43,6 +44,9 @@ fi
prompt() { prompt() {
local var_name="$1" prompt_text="$2" default_val="$3" local var_name="$1" prompt_text="$2" default_val="$3"
local input local input
if [[ -n "${!var_name:-}" ]]; then
return 0
fi
read -rp "${prompt_text} [${default_val}]: " input read -rp "${prompt_text} [${default_val}]: " input
if [[ -z "${input}" ]]; then if [[ -z "${input}" ]]; then
printf -v "${var_name}" '%s' "${default_val}" printf -v "${var_name}" '%s' "${default_val}"
@@ -67,14 +71,19 @@ fi
prompt WARP_WEBUI_USER "Логин администратора веб-панели" "warpadmin" prompt WARP_WEBUI_USER "Логин администратора веб-панели" "warpadmin"
while true; do if [[ -z "${WARP_WEBUI_PASS:-}" ]]; then
read -rsp "Пароль администратора (минимум 8 символов): " WARP_WEBUI_PASS while true; do
echo read -rsp "Пароль администратора (минимум 8 символов): " WARP_WEBUI_PASS
if [[ "${#WARP_WEBUI_PASS}" -ge 8 ]]; then echo
break if [[ "${#WARP_WEBUI_PASS}" -ge 8 ]]; then
fi break
echo "Пароль слишком короткий. Нужно не менее 8 символов." fi
done echo "Пароль слишком короткий. Нужно не менее 8 символов."
done
elif [[ "${#WARP_WEBUI_PASS}" -lt 8 ]]; then
echo "WARP_WEBUI_PASS слишком короткий. Нужно не менее 8 символов."
exit 1
fi
# Публичный адрес для подсказок в пресетах клиентов (необязательно) # Публичный адрес для подсказок в пресетах клиентов (необязательно)
WARP_PUBLIC_HOST="${WARP_PUBLIC_HOST:-}" WARP_PUBLIC_HOST="${WARP_PUBLIC_HOST:-}"