diff --git a/install.sh b/install.sh index 320c8802..29127843 100755 --- a/install.sh +++ b/install.sh @@ -126,9 +126,10 @@ build_env_status() { select_menu() { local title="$1" - shift + local default_index="$2" + shift 2 local options=("$@") - local selected=0 + local selected="${default_index:-0}" local key="" [[ "${#options[@]}" -gt 0 ]] || ctms_fail "菜单没有可选项" @@ -169,14 +170,14 @@ ctms_config_get() { } pick_env() { - local env + local env default_index=0 env="$(ctms_config_get "env" || true)" - if [[ -n "$env" ]]; then - ctms_require_env "$env" - SELECTED_ENV="$env" - return - fi - select_menu "选择环境" \ + case "$env" in + main) default_index=1 ;; + release) default_index=2 ;; + *) default_index=0 ;; + esac + select_menu "选择环境" "$default_index" \ "dev 本地开发环境 Vite 热加载 / 默认密钥" \ "main 内网测试环境 预发布验证 / 生产模式" \ "release 生产环境 HTTPS / RSA 密钥" @@ -224,7 +225,7 @@ pause_return() { } interactive_main() { - select_menu "选择操作" \ + select_menu "选择操作" "0" \ "安装部署 配置环境、构建容器、迁移数据库、健康检查" \ "滚动更新 重建服务、执行迁移、复用安装健康检查" \ "安全卸载 停止并移除容器,保留 .env 与数据文件" \