hookehuyr

refactor(deploy): 使用函数替换关联数组以提高兼容性

将环境列表从关联数组改为函数实现,以兼容更多shell版本。同时提取获取所有环境的逻辑到单独函数,提高代码可维护性。
Showing 1 changed file with 26 additions and 15 deletions
......@@ -29,15 +29,25 @@ print_error() {
}
# 支持的环境列表
declare -A ENVIRONMENTS
ENVIRONMENTS["dev"]="开发环境"
ENVIRONMENTS["oa"]="OA环境"
ENVIRONMENTS["mituo"]="弥陀寺环境"
ENVIRONMENTS["guanzong"]="观宗寺环境"
ENVIRONMENTS["baorong"]="包容寺环境"
ENVIRONMENTS["taishan"]="泰山寺环境"
ENVIRONMENTS["xys"]="西园寺环境"
ENVIRONMENTS["zentea"]="Zentea环境"
# 使用函数方式实现环境映射,兼容更多shell版本
get_environment_name() {
case "$1" in
"dev") echo "开发环境" ;;
"oa") echo "OA环境" ;;
"mituo") echo "弥陀寺环境" ;;
"guanzong") echo "观宗寺环境" ;;
"baorong") echo "包容寺环境" ;;
"taishan") echo "泰山寺环境" ;;
"xys") echo "西园寺环境" ;;
"zentea") echo "Zentea环境" ;;
*) echo "" ;;
esac
}
# 获取所有支持的环境列表
get_all_environments() {
echo "dev oa mituo guanzong baorong taishan xys zentea"
}
# 显示帮助信息
show_help() {
......@@ -47,8 +57,8 @@ show_help() {
echo " ./deploy.sh [环境1] [环境2] [环境3] ..."
echo ""
echo "支持的环境:"
for env in "${!ENVIRONMENTS[@]}"; do
echo " $env - ${ENVIRONMENTS[$env]}"
for env in $(get_all_environments); do
echo " $env - $(get_environment_name "$env")"
done
echo ""
echo "示例:"
......@@ -61,9 +71,10 @@ show_help() {
# 检查环境是否有效
validate_environment() {
local env=$1
if [[ ! ${ENVIRONMENTS[$env]+_} ]]; then
local env_name=$(get_environment_name "$env")
if [[ -z "$env_name" ]]; then
print_error "不支持的环境: $env"
print_info "支持的环境: ${!ENVIRONMENTS[*]}"
print_info "支持的环境: $(get_all_environments)"
return 1
fi
return 0
......@@ -156,7 +167,7 @@ main() {
if [[ "$1" == "all" ]]; then
# 部署到所有环境
environments=("${!ENVIRONMENTS[@]}")
environments=($(get_all_environments))
print_info "将部署到所有环境: ${environments[*]}"
else
# 验证指定的环境
......@@ -174,7 +185,7 @@ main() {
echo ""
print_warning "即将部署到以下环境:"
for env in "${environments[@]}"; do
echo " - $env (${ENVIRONMENTS[$env]})"
echo " - $env ($(get_environment_name "$env"))"
done
echo ""
read -p "确认继续? (y/N): " -n 1 -r
......