From 5a4bf5549c1a82d2ac4c96ba43935b9332fec168 Mon Sep 17 00:00:00 2001 From: eddy Date: Thu, 2 Jul 2026 03:44:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20Sub2API=20?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E8=84=9A=E6=9C=AC=E4=BB=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E6=9B=B4=E6=96=B0=E5=92=8C=E9=87=8D=E8=A3=85?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加检测已有安装的功能,避免覆盖数据库配置 - 提供用户选择:仅更新或强制重装,重装时需确认以防数据丢失 - 更新用户提示信息,增强交互体验 --- install/23-Sub2API.sh | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/install/23-Sub2API.sh b/install/23-Sub2API.sh index 7cc5e3b..cd46542 100644 --- a/install/23-Sub2API.sh +++ b/install/23-Sub2API.sh @@ -10,14 +10,24 @@ port80=8230 install_dir=/root/data/docker_data/Sub2API update_script="$install_dir/auto-update.sh" -# 交互:选择安装或仅执行 Docker 更新 +# 交互:已有安装时默认只更新,避免覆盖数据库账号、密码和连接配置 +existing_install=0 +if [ -f "$install_dir/docker-compose.yml" ]; then + existing_install=1 +fi + echo "请选择操作:" -echo " 1) 安装 Sub2API(默认)" -echo " 2) 不安装,立即执行 Docker 更新" +if [ "$existing_install" -eq 1 ]; then + echo " 1) 已安装,仅更新 Sub2API app 镜像(默认,安全,不覆盖配置/数据库)" + echo " 2) 强制重装 Sub2API(危险,会重写 docker-compose.yml)" +else + echo " 1) 安装 Sub2API(默认)" + echo " 2) 不安装,立即执行 Docker 更新" +fi read -r -p "请输入选项 [1/2](默认 1):" action_choice action_choice="${action_choice:-1}" -if [ "$action_choice" = "2" ]; then +if { [ "$existing_install" -eq 1 ] && [ "$action_choice" = "1" ]; } || { [ "$existing_install" -eq 0 ] && [ "$action_choice" = "2" ]; }; then echo "已选择:立即执行 Docker 更新。" if [ -x "$update_script" ]; then "$update_script" @@ -43,6 +53,16 @@ if [ "$action_choice" = "2" ]; then exit 0 fi +if [ "$existing_install" -eq 1 ] && [ "$action_choice" = "2" ]; then + echo "检测到已有 Sub2API 安装:$install_dir/docker-compose.yml" + echo "强制重装会覆盖 docker-compose.yml,可能导致数据库账号、密码或连接配置被重置。" + read -r -p "如确需重装,请输入 REINSTALL 确认:" reinstall_confirm + if [ "$reinstall_confirm" != "REINSTALL" ]; then + echo "未确认强制重装,已退出。原有配置未修改。" + exit 0 + fi +fi + # 1、更新包(更新失败不阻断后续安装) export DEBIAN_FRONTEND=noninteractive