refactor(deploy): 使用函数替换关联数组以提高兼容性
将环境列表从关联数组改为函数实现,以兼容更多shell版本。同时提取获取所有环境的逻辑到单独函数,提高代码可维护性。
Showing
1 changed file
with
26 additions
and
15 deletions
| ... | @@ -29,15 +29,25 @@ print_error() { | ... | @@ -29,15 +29,25 @@ print_error() { |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | # 支持的环境列表 | 31 | # 支持的环境列表 |
| 32 | -declare -A ENVIRONMENTS | 32 | +# 使用函数方式实现环境映射,兼容更多shell版本 |
| 33 | -ENVIRONMENTS["dev"]="开发环境" | 33 | +get_environment_name() { |
| 34 | -ENVIRONMENTS["oa"]="OA环境" | 34 | + case "$1" in |
| 35 | -ENVIRONMENTS["mituo"]="弥陀寺环境" | 35 | + "dev") echo "开发环境" ;; |
| 36 | -ENVIRONMENTS["guanzong"]="观宗寺环境" | 36 | + "oa") echo "OA环境" ;; |
| 37 | -ENVIRONMENTS["baorong"]="包容寺环境" | 37 | + "mituo") echo "弥陀寺环境" ;; |
| 38 | -ENVIRONMENTS["taishan"]="泰山寺环境" | 38 | + "guanzong") echo "观宗寺环境" ;; |
| 39 | -ENVIRONMENTS["xys"]="西园寺环境" | 39 | + "baorong") echo "包容寺环境" ;; |
| 40 | -ENVIRONMENTS["zentea"]="Zentea环境" | 40 | + "taishan") echo "泰山寺环境" ;; |
| 41 | + "xys") echo "西园寺环境" ;; | ||
| 42 | + "zentea") echo "Zentea环境" ;; | ||
| 43 | + *) echo "" ;; | ||
| 44 | + esac | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +# 获取所有支持的环境列表 | ||
| 48 | +get_all_environments() { | ||
| 49 | + echo "dev oa mituo guanzong baorong taishan xys zentea" | ||
| 50 | +} | ||
| 41 | 51 | ||
| 42 | # 显示帮助信息 | 52 | # 显示帮助信息 |
| 43 | show_help() { | 53 | show_help() { |
| ... | @@ -47,8 +57,8 @@ show_help() { | ... | @@ -47,8 +57,8 @@ show_help() { |
| 47 | echo " ./deploy.sh [环境1] [环境2] [环境3] ..." | 57 | echo " ./deploy.sh [环境1] [环境2] [环境3] ..." |
| 48 | echo "" | 58 | echo "" |
| 49 | echo "支持的环境:" | 59 | echo "支持的环境:" |
| 50 | - for env in "${!ENVIRONMENTS[@]}"; do | 60 | + for env in $(get_all_environments); do |
| 51 | - echo " $env - ${ENVIRONMENTS[$env]}" | 61 | + echo " $env - $(get_environment_name "$env")" |
| 52 | done | 62 | done |
| 53 | echo "" | 63 | echo "" |
| 54 | echo "示例:" | 64 | echo "示例:" |
| ... | @@ -61,9 +71,10 @@ show_help() { | ... | @@ -61,9 +71,10 @@ show_help() { |
| 61 | # 检查环境是否有效 | 71 | # 检查环境是否有效 |
| 62 | validate_environment() { | 72 | validate_environment() { |
| 63 | local env=$1 | 73 | local env=$1 |
| 64 | - if [[ ! ${ENVIRONMENTS[$env]+_} ]]; then | 74 | + local env_name=$(get_environment_name "$env") |
| 75 | + if [[ -z "$env_name" ]]; then | ||
| 65 | print_error "不支持的环境: $env" | 76 | print_error "不支持的环境: $env" |
| 66 | - print_info "支持的环境: ${!ENVIRONMENTS[*]}" | 77 | + print_info "支持的环境: $(get_all_environments)" |
| 67 | return 1 | 78 | return 1 |
| 68 | fi | 79 | fi |
| 69 | return 0 | 80 | return 0 |
| ... | @@ -156,7 +167,7 @@ main() { | ... | @@ -156,7 +167,7 @@ main() { |
| 156 | 167 | ||
| 157 | if [[ "$1" == "all" ]]; then | 168 | if [[ "$1" == "all" ]]; then |
| 158 | # 部署到所有环境 | 169 | # 部署到所有环境 |
| 159 | - environments=("${!ENVIRONMENTS[@]}") | 170 | + environments=($(get_all_environments)) |
| 160 | print_info "将部署到所有环境: ${environments[*]}" | 171 | print_info "将部署到所有环境: ${environments[*]}" |
| 161 | else | 172 | else |
| 162 | # 验证指定的环境 | 173 | # 验证指定的环境 |
| ... | @@ -174,7 +185,7 @@ main() { | ... | @@ -174,7 +185,7 @@ main() { |
| 174 | echo "" | 185 | echo "" |
| 175 | print_warning "即将部署到以下环境:" | 186 | print_warning "即将部署到以下环境:" |
| 176 | for env in "${environments[@]}"; do | 187 | for env in "${environments[@]}"; do |
| 177 | - echo " - $env (${ENVIRONMENTS[$env]})" | 188 | + echo " - $env ($(get_environment_name "$env"))" |
| 178 | done | 189 | done |
| 179 | echo "" | 190 | echo "" |
| 180 | read -p "确认继续? (y/N): " -n 1 -r | 191 | read -p "确认继续? (y/N): " -n 1 -r | ... | ... |
-
Please register or login to post a comment