Compare commits
9 Commits
4bbc234b53
...
2df8d60172
| Author | SHA1 | Date | |
|---|---|---|---|
| 2df8d60172 | |||
| b83c900109 | |||
| 20b414e741 | |||
| a81647a4f8 | |||
| b72b5314a0 | |||
| b126a759f0 | |||
| 05cd74fd43 | |||
| e531ce75f9 | |||
| 79d2ee344c |
+29
-12
@@ -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,22 +170,38 @@ 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
|
esac
|
||||||
fi
|
local -a opts=(
|
||||||
select_menu "选择环境" \
|
"dev 本地开发环境 Vite 热加载 / 默认密钥"
|
||||||
"dev 本地开发环境 Vite 热加载 / 默认密钥" \
|
"main 内网测试环境 预发布验证 / 生产模式"
|
||||||
"main 内网测试环境 预发布验证 / 生产模式" \
|
|
||||||
"release 生产环境 HTTPS / RSA 密钥"
|
"release 生产环境 HTTPS / RSA 密钥"
|
||||||
|
)
|
||||||
|
if [[ -n "$env" ]]; then
|
||||||
|
case "$default_index" in
|
||||||
|
0) opts[0]="dev(默认) 本地开发环境 Vite 热加载 / 默认密钥" ;;
|
||||||
|
1) opts[1]="main(默认) 内网测试环境 预发布验证 / 生产模式" ;;
|
||||||
|
2) opts[2]="release(默认) 生产环境 HTTPS / RSA 密钥" ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
local menu_title="选择环境"
|
||||||
|
[[ -n "$env" ]] && menu_title="选择环境 (已识别: ${env})"
|
||||||
|
select_menu "$menu_title" "$default_index" "${opts[@]}"
|
||||||
case "$SELECTED_INDEX" in
|
case "$SELECTED_INDEX" in
|
||||||
0) SELECTED_ENV="dev" ;;
|
0) SELECTED_ENV="dev" ;;
|
||||||
1) SELECTED_ENV="main" ;;
|
1) SELECTED_ENV="main" ;;
|
||||||
2) SELECTED_ENV="release" ;;
|
2) SELECTED_ENV="release" ;;
|
||||||
esac
|
esac
|
||||||
|
# 手动选择与配置不一致时更新 .ctms-env
|
||||||
|
if [[ -n "$env" && "$SELECTED_ENV" != "$env" ]]; then
|
||||||
|
local file="$ROOT_DIR/.ctms-env"
|
||||||
|
sed -i.bak "s/^env *=.*/env = $SELECTED_ENV/" "$file" && rm -f "${file}.bak"
|
||||||
|
ctms_info "已将 .ctms-env 中的环境更新为: $SELECTED_ENV"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
collect_install_options() {
|
collect_install_options() {
|
||||||
@@ -224,7 +241,7 @@ pause_return() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interactive_main() {
|
interactive_main() {
|
||||||
select_menu "选择操作" \
|
select_menu "选择操作" "" \
|
||||||
"安装部署 配置环境、构建容器、迁移数据库、健康检查" \
|
"安装部署 配置环境、构建容器、迁移数据库、健康检查" \
|
||||||
"滚动更新 重建服务、执行迁移、复用安装健康检查" \
|
"滚动更新 重建服务、执行迁移、复用安装健康检查" \
|
||||||
"安全卸载 停止并移除容器,保留 .env 与数据文件" \
|
"安全卸载 停止并移除容器,保留 .env 与数据文件" \
|
||||||
|
|||||||
Reference in New Issue
Block a user