From 1ba8f98533929782f02925c922641c23ee1bbc30 Mon Sep 17 00:00:00 2001 From: anten-ka Date: Thu, 5 Mar 2026 18:12:02 +0300 Subject: [PATCH] Fix self_update URL to kaskad-pro, add GitHub PAT support for private repo updates, auto-restart services on update Made-with: Cursor --- install.sh | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index d5f1aa0..429e5ab 100644 --- a/install.sh +++ b/install.sh @@ -382,16 +382,38 @@ flush_rules() { # ─── Auto-update ────────────────────────────────────────────── self_update() { - local url="https://raw.githubusercontent.com/anten-ka/kaskad/main/install.sh" + local repo_url="https://raw.githubusercontent.com/anten-ka/kaskad-pro/main/install.sh" + local update_token + update_token=$(bot_get_state "system" "UPDATE_TOKEN" 2>/dev/null) + echo -e "${YELLOW}[*] Загрузка обновления...${NC}" - if wget -qO /tmp/kaskad_update.sh "$url" 2>/dev/null; then + + local ok=0 + if [ -n "$update_token" ]; then + curl -sL -H "Authorization: token $update_token" "$repo_url" -o /tmp/kaskad_update.sh 2>/dev/null && ok=1 + fi + if [ "$ok" -eq 0 ]; then + wget -qO /tmp/kaskad_update.sh "$repo_url" 2>/dev/null && ok=1 + fi + if [ "$ok" -eq 0 ] && [ -n "$update_token" ]; then + wget -qO /tmp/kaskad_update.sh --header="Authorization: token $update_token" "$repo_url" 2>/dev/null && ok=1 + fi + + if [ "$ok" -eq 1 ] && [ -s /tmp/kaskad_update.sh ]; then cp -f /tmp/kaskad_update.sh /usr/local/bin/gokaskad chmod +x /usr/local/bin/gokaskad rm -f /tmp/kaskad_update.sh - echo -e "${GREEN}[OK] Скрипт обновлён! Перезапустите: gokaskad${NC}" + + systemctl restart kaskad-bot 2>/dev/null + systemctl restart kaskad-monitor 2>/dev/null + + echo -e "${GREEN}[OK] Скрипт обновлён! Службы перезапущены.${NC}" + echo -e "${GREEN}Перезапустите меню: gokaskad${NC}" log_action "Self-update completed" else echo -e "${RED}[ERROR] Не удалось скачать обновление.${NC}" + echo -e "${YELLOW}Если репо приватный, задайте токен: меню 8 → доп. опции${NC}" + rm -f /tmp/kaskad_update.sh fi read -p "Нажмите Enter..." } @@ -1349,11 +1371,19 @@ bot_menu() { echo -e "Токен: ${YELLOW}$token_display${NC}" echo -e "Chat ID: ${YELLOW}${BOT_CHAT_ID:-не задан}${NC}" echo "" + local ut_display="не задан" + local ut_val + ut_val=$(bot_get_state "system" "UPDATE_TOKEN" 2>/dev/null) + [ -n "$ut_val" ] && ut_display="***${ut_val: -6}" + + echo -e "Update Token: ${YELLOW}$ut_display${NC}" + echo "" echo -e "1) Установить токен бота" echo -e "2) Получить Chat ID (авто)" echo -e "3) Установить Chat ID вручную" echo -e "4) ${GREEN}Запустить бота${NC}" echo -e "5) ${RED}Остановить бота${NC}" + echo -e "6) Установить токен обновления (GitHub PAT)" echo -e "0) Назад" read -p "Выбор: " choice @@ -1398,6 +1428,15 @@ bot_menu() { ;; 4) start_bot; read -p "Enter..." ;; 5) stop_bot; read -p "Enter..." ;; + 6) + echo -e "Введите GitHub PAT (для скачивания обновлений из приватного репо):" + read -p "> " new_ut + if [ -n "$new_ut" ]; then + bot_set_state "system" "UPDATE_TOKEN=$new_ut" + echo -e "${GREEN}[OK] Токен обновления сохранён.${NC}" + fi + read -p "Enter..." + ;; 0) return ;; esac done