feat(setup): add ./setup.sh update CLI mode
./setup.sh update (или --update) запускает git pull --ff-only + перегенерацию всех ai-* лаунчеров без интерактивного меню — то же, что пункт меню 7 (логика вынесена в общую do_update). Неизвестный аргумент печатает usage и выходит с кодом 1, без аргументов открывается меню как раньше. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,11 @@ bash setup.sh
|
|||||||
exec bash
|
exec bash
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Обновление всех AI-инструментов одной командой:
|
||||||
|
```bash
|
||||||
|
./setup.sh update
|
||||||
|
```
|
||||||
|
|
||||||
## 2. Настроить сеть (Amnezia + ru-bypass)
|
## 2. Настроить сеть (Amnezia + ru-bypass)
|
||||||
|
|
||||||
Нужно один раз на каждой машине. .ru трафик идёт напрямую,
|
Нужно один раз на каждой машине. .ru трафик идёт напрямую,
|
||||||
|
|||||||
@@ -56,6 +56,15 @@ bash setup.sh
|
|||||||
exec bash
|
exec bash
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Обновление одной командой
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./setup.sh update # или: ./setup.sh --update
|
||||||
|
```
|
||||||
|
|
||||||
|
То же, что пункт меню `7) Обновить`: `git pull --ff-only` + перегенерация всех
|
||||||
|
`ai-*` лаунчеров через `scripts/ai-setup.sh`. Без аргументов открывается меню.
|
||||||
|
|
||||||
## Сеть: ru-bypass + kill switch
|
## Сеть: ru-bypass + kill switch
|
||||||
|
|
||||||
Полная документация: [`home-configs/network/README.md`](home-configs/network/README.md)
|
Полная документация: [`home-configs/network/README.md`](home-configs/network/README.md)
|
||||||
|
|||||||
35
setup.sh
35
setup.sh
@@ -18,6 +18,34 @@ 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"; }
|
||||||
|
|
||||||
|
# Обновление: git pull + перегенерация всех ai-* лаунчеров (пункт меню 7)
|
||||||
|
do_update() {
|
||||||
|
local repo_dir
|
||||||
|
repo_dir="$(pwd)"
|
||||||
|
echo -e "${BLD}Обновляем репозиторий...${CLR}"
|
||||||
|
git -C "$repo_dir" pull --ff-only
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLD}Перегенерация скриптов...${CLR}"
|
||||||
|
bash "$repo_dir/scripts/ai-setup.sh"
|
||||||
|
}
|
||||||
|
|
||||||
|
# CLI-режим: ./setup.sh update (или --update) — обновление без меню
|
||||||
|
case "${1:-}" in
|
||||||
|
update|--update)
|
||||||
|
_log "setup" "update (CLI) на $(hostname)"
|
||||||
|
do_update
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
"")
|
||||||
|
# без аргументов — интерактивное меню ниже
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Неизвестный аргумент: $1"
|
||||||
|
echo "Использование: ./setup.sh [update] — без аргументов открывается меню"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
if command -v whiptail >/dev/null 2>&1; then
|
if command -v whiptail >/dev/null 2>&1; then
|
||||||
MENU_ARGS=()
|
MENU_ARGS=()
|
||||||
MENU_ARGS+=("1" "AI-инструменты (установить лаунчеры + ключи)")
|
MENU_ARGS+=("1" "AI-инструменты (установить лаунчеры + ключи)")
|
||||||
@@ -248,12 +276,7 @@ case "$choice" in
|
|||||||
bash tests/test_network.sh
|
bash tests/test_network.sh
|
||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
REPO_DIR="$(cd "$(dirname "$0")" && pwd)"
|
do_update
|
||||||
echo -e "${BLD}Обновляем репозиторий...${CLR}"
|
|
||||||
git -C "$REPO_DIR" pull --ff-only
|
|
||||||
echo ""
|
|
||||||
echo -e "${BLD}Перегенерация скриптов...${CLR}"
|
|
||||||
bash "$REPO_DIR/scripts/ai-setup.sh"
|
|
||||||
;;
|
;;
|
||||||
8)
|
8)
|
||||||
bash scripts/ai-setup.sh
|
bash scripts/ai-setup.sh
|
||||||
|
|||||||
Reference in New Issue
Block a user