feat: issue #10 — whiptail TUI меню с fallback на plain-text

setup.sh: если whiptail доступен — показывает интерактивное меню
со стрелками (стандартный пакет newt, обычно уже установлен).
Если whiptail не найден — прежнее plain-text меню без изменений.
case-блок единый для обоих путей.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-07 20:20:25 +03:00
parent 2c8ff61968
commit 2805ade773

View File

@@ -12,6 +12,20 @@ mkdir -p "$HOME/.config/ai-setup"
LOG="$HOME/.config/ai-setup/setup.log" LOG="$HOME/.config/ai-setup/setup.log"
_log() { printf '%s [%s] %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$1" "$2" >> "$LOG"; } _log() { printf '%s [%s] %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$1" "$2" >> "$LOG"; }
if command -v whiptail >/dev/null 2>&1; then
choice=$(whiptail --title "AI Setup" \
--menu "Выбери действие (стрелки + Enter):" 22 70 9 \
"1" "AI-инструменты (установить лаунчеры + ключи)" \
"2" "Сеть: ru-bypass + kill switch" \
"" "─── Дополнительно ───────────────────────────" \
"3" "Отключить kill switch (прямой доступ без VPN)" \
"4" "Включить kill switch (восстановить защиту)" \
"5" "Статус (Amnezia, UFW, AI инструменты, ключи)" \
"6" "Проверить сеть (маршрутизация, geo)" \
"7" "Обновить (git pull + перегенерация скриптов)" \
3>&1 1>&2 2>&3) || exit 0
echo ""
else
echo "" echo ""
echo -e "${BLD}=== AI Setup ===${CLR}" echo -e "${BLD}=== AI Setup ===${CLR}"
echo "" echo ""
@@ -47,6 +61,7 @@ echo ""
echo -n "Выбери [1-7] или Enter для выхода: " echo -n "Выбери [1-7] или Enter для выхода: "
read -r choice read -r choice
echo "" echo ""
fi
[ -n "$choice" ] && _log "setup" "Пункт $choice на $(hostname)" [ -n "$choice" ] && _log "setup" "Пункт $choice на $(hostname)"