同步工作区更新:优化安装脚本与更新脚本,添加文档与测试脚本

This commit is contained in:
Cheng Zhou
2026-06-23 17:18:34 +08:00
parent efc325568d
commit 4bbc234b53
8 changed files with 1998 additions and 19 deletions
+41 -9
View File
@@ -13,12 +13,29 @@ UI_BOX_WIDTH=76
usage() {
cat <<EOF
${C_BOLD}用法:${C_RESET}
./install.sh
${C_BOLD}说明:${C_RESET}
install.sh 不接受命令行参数。
执行后通过键盘 ↑/↓ 选择安装、更新、卸载、状态等操作,按 Q 退出。
${CC_PRIMARY}${C_BOLD}═══════════════════════════════════════════════════════════════${C_RESET}
${CC_PRIMARY}${C_BOLD} CTMS 部署控制台 - 使用帮助${C_RESET}
${CC_PRIMARY}${C_BOLD}═══════════════════════════════════════════════════════════════${C_RESET}
${C_BOLD}【主入口】${C_RESET} ${CC_INFO}./install.sh${C_RESET} ${CC_MUTED}↑/↓ 选择 Enter 确认 Q 退出${C_RESET}
${C_BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${C_RESET}
${C_BOLD}【底层脚本(CI/CD)】${C_RESET}
${CC_INFO}bash scripts/install.sh <env> [--base-url <url>] [--yes] [--skip-build] [--skip-migrate]${C_RESET}
${CC_INFO}bash scripts/update.sh <env> [--repo-url <url>] [--branch <name>] [--yes] [--force]${C_RESET}
${CC_INFO}bash scripts/uninstall.sh <env>${C_RESET}
${CC_INFO}bash scripts/status.sh <env>${C_RESET}
${CC_MUTED}env: dev(开发)| main(内网测试)| release(生产)${C_RESET}
${CC_MUTED}update.sh 认证:export GIT_USERNAME=xxx GIT_PASSWORD=yyy${C_RESET}
${CC_MUTED}查看脚本帮助:${C_RESET} bash scripts/<script>.sh --help
${CC_PRIMARY}${C_BOLD}═══════════════════════════════════════════════════════════════${C_RESET}
EOF
}
@@ -139,12 +156,26 @@ select_menu() {
"[A") selected=$(( (selected - 1 + ${#options[@]}) % ${#options[@]} )) ;;
"[B") selected=$(( (selected + 1) % ${#options[@]} )) ;;
"") ctms_restore_cursor; SELECTED_INDEX="$selected"; return ;;
q|Q) ctms_restore_cursor; exit 0 ;;
q|Q) ctms_restore_cursor; printf '\033[2J\033[H'; exit 0 ;;
esac
done
}
# 读取 .ctms-env 中的 KEY = VALUE 配置
ctms_config_get() {
local key="$1" file="$ROOT_DIR/.ctms-env"
[[ -f "$file" ]] || return 1
awk -F' *= *' -v k="$key" 'NF==2 && $1==k { print $2; exit }' "$file"
}
pick_env() {
local env
env="$(ctms_config_get "env" || true)"
if [[ -n "$env" ]]; then
ctms_require_env "$env"
SELECTED_ENV="$env"
return
fi
select_menu "选择环境" \
"dev 本地开发环境 Vite 热加载 / 默认密钥" \
"main 内网测试环境 预发布验证 / 生产模式" \
@@ -158,12 +189,12 @@ pick_env() {
collect_install_options() {
local env="$1"
SELECTED_BASE_URL=""
SELECTED_BASE_URL="$(ctms_config_get "base-url" || true)"
if [[ "$env" == "release" ]]; then
if [[ "$env" == "release" && -z "$SELECTED_BASE_URL" ]]; then
SELECTED_BASE_URL="$(ctms_ask_line "请输入健康检查地址,例如 https://ctms.example.com")"
[[ -n "$SELECTED_BASE_URL" ]] || ctms_fail "release 环境必须提供健康检查地址"
elif [[ "$env" == "main" ]]; then
elif [[ "$env" == "main" && -z "$SELECTED_BASE_URL" ]]; then
SELECTED_BASE_URL="$(ctms_ask_line "请输入健康检查地址" "http://127.0.0.1:8888")"
fi
}
@@ -246,6 +277,7 @@ main() {
build_env_status
interactive_main || break
done
printf '\033[2J\033[H'
exit 0
}