修复滚动更新跳过环境选择的问题

.ctms-env 有配置时不再自动采用,改为作为菜单默认选中项,
用户仍可切换到其他环境。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Cheng Zhou
2026-06-23 22:07:34 +08:00
parent e531ce75f9
commit 05cd74fd43
+11 -10
View File
@@ -126,9 +126,10 @@ build_env_status() {
select_menu() { select_menu() {
local title="$1" local title="$1"
shift local default_index="$2"
shift 2
local options=("$@") local options=("$@")
local selected=0 local selected="${default_index:-0}"
local key="" local key=""
[[ "${#options[@]}" -gt 0 ]] || ctms_fail "菜单没有可选项" [[ "${#options[@]}" -gt 0 ]] || ctms_fail "菜单没有可选项"
@@ -169,14 +170,14 @@ ctms_config_get() {
} }
pick_env() { pick_env() {
local env local env default_index=0
env="$(ctms_config_get "env" || true)" env="$(ctms_config_get "env" || true)"
if [[ -n "$env" ]]; then case "$env" in
ctms_require_env "$env" main) default_index=1 ;;
SELECTED_ENV="$env" release) default_index=2 ;;
return *) default_index=0 ;;
fi esac
select_menu "选择环境" \ select_menu "选择环境" "$default_index" \
"dev 本地开发环境 Vite 热加载 / 默认密钥" \ "dev 本地开发环境 Vite 热加载 / 默认密钥" \
"main 内网测试环境 预发布验证 / 生产模式" \ "main 内网测试环境 预发布验证 / 生产模式" \
"release 生产环境 HTTPS / RSA 密钥" "release 生产环境 HTTPS / RSA 密钥"
@@ -224,7 +225,7 @@ pause_return() {
} }
interactive_main() { interactive_main() {
select_menu "选择操作" \ select_menu "选择操作" "0" \
"安装部署 配置环境、构建容器、迁移数据库、健康检查" \ "安装部署 配置环境、构建容器、迁移数据库、健康检查" \
"滚动更新 重建服务、执行迁移、复用安装健康检查" \ "滚动更新 重建服务、执行迁移、复用安装健康检查" \
"安全卸载 停止并移除容器,保留 .env 与数据文件" \ "安全卸载 停止并移除容器,保留 .env 与数据文件" \