提交 b4c314dd authored 作者: PGY's avatar PGY

根据您提供的信息,我注意到code differences部分是空的。但是按照Angular commit规范的要求,我需要生成一个符合规范的commit message。

由于没有具体的代码变更信息,我将提供一个通用的模板示例:

```
docs(changelog): 更新版本发布说明

添加新功能描述和bug修复记录到更新日志中,
确保所有重要的变更都有详细说明。
```

如果您能提供具体的代码差异信息,我可以生成更准确和具体的commit message。请提供实际的代码变更内容,包括:
- 变更的文件类型
- 具体的功能修改
- 修复的问题
- 变更的影响范围

这样就能生成完全符合Angular规范且描述准确的中文commit message。
上级 0663da88
#!/bin/bash
# 修复中文换行问题的专用工具脚本
SCRIPT_PATH="issue_handler.sh"
echo "开始修复中文换行问题..."
# 备份原文件
cp "$SCRIPT_PATH" "${SCRIPT_PATH}.bak"
echo "已创建备份文件: ${SCRIPT_PATH}.bak"
# 修复Windows换行符问题
sed -i 's/\r$//' "$SCRIPT_PATH"
# 修复可能的编码问题
if command -v dos2unix >/dev/null 2>&1; then
dos2unix "$SCRIPT_PATH"
echo "使用dos2unix处理文件"
elif command -v fromdos >/dev/null 2>&1; then
fromdos "$SCRIPT_PATH"
echo "使用fromdos处理文件"
else
echo "未找到dos2unix或fromdos工具,跳过DOS格式转换"
fi
# 确保文件以Unix换行符结尾
tail -c1 < "$SCRIPT_PATH" | read -r _ || echo "" >> "$SCRIPT_PATH"
echo "中文换行问题修复完成!"
echo "请测试运行脚本: bash $SCRIPT_PATH"
\ No newline at end of file
#!/bin/bash #!/bin/bash
# 设置标准环境变量,避免"参数列表过长"问题
export LANG=C
export LC_ALL=C
# 检查并修复执行环境问题
fix_execution_environment() {
# 检查脚本换行符
if command -v dos2unix >/dev/null 2>&1; then
# 检查是否需要修复换行符
if head -n 10 "$0" | grep -q $'\r'; then
echo "检测到Windows换行符,正在修复..."
dos2unix "$0" 2>/dev/null || true
echo "换行符已修复,重新执行脚本..."
exec bash "$0" "$@"
exit $?
fi
fi
# 检查BOM标记
if head -c 3 "$0" | od -An -tx1 | tr -d ' ' | grep -q '^efbbbf'; then
echo "检测到BOM标记,正在处理..."
tail -c +4 "$0" > "/tmp/issue_handler_fixed.sh"
chmod +x "/tmp/issue_handler_fixed.sh"
echo "BOM标记已处理,重新执行脚本..."
exec bash "/tmp/issue_handler_fixed.sh" "$@"
exit $?
fi
}
# 执行环境检查和修复
fix_execution_environment "$@"
# 检查并修复环境变量"参数列表过长"问题
fix_env_variable_issues() {
# 检查环境变量长度
if [[ ${#LANG} -gt 100 ]] || [[ ${#LC_ALL} -gt 100 ]]; then
echo "检测到环境变量过长,正在修复..."
export LANG=C
export LC_ALL=C
echo "环境变量已重置"
fi
# 检查环境变量中是否包含空字符
if echo "$LANG" | grep -q $'\0'; then
echo "检测到LANG变量包含空字符,正在修复..."
export LANG=C
fi
if echo "$LC_ALL" | grep -q $'\0'; then
echo "检测到LC_ALL变量包含空字符,正在修复..."
export LC_ALL=C
fi
}
# 处理可能存在的中文换行问题
remove_chinese_newlines() {
local file="$1"
# 检查并移除中文文本中的意外换行符
if [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
# Windows环境下可能存在的换行问题处理
sed -i 's/\r$//' "$file" 2>/dev/null || true
fi
}
# 常见问题处理脚本 # 常见问题处理脚本
# 根据PRD_问题处理文档.md中描述的问题和解决方案,提供自动化处理功能 # 根据PRD_问题处理文档.md中描述的问题和解决方案,提供自动化处理功能
...@@ -12,31 +76,36 @@ PURPLE='\033[0;35m' ...@@ -12,31 +76,36 @@ PURPLE='\033[0;35m'
CYAN='\033[0;36m' CYAN='\033[0;36m'
NC='\033[0m' # No Color NC='\033[0m' # No Color
# 日志文件路径 # 日志文件路径
LOG_FILE="$(dirname "$0")/issue_handler.log" LOG_FILE="$(dirname "$0")/issue_handler.log"
# 日志函数 # 日志函数
log_info() { log_info() {
local message="[INFO] $(date '+%Y-%m-%d %H:%M:%S') $1" local message="[INFO] $(date '+%Y-%m-%d %H:%M:%S') $1"
echo -e "${GREEN}[INFO]${NC} $1" # 处理可能的中文字符显示问题
echo -e "${GREEN}[INFO]${NC} $1" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "[INFO] $1"
echo "$message" >> "$LOG_FILE" echo "$message" >> "$LOG_FILE"
} }
log_warn() { log_warn() {
local message="[WARN] $(date '+%Y-%m-%d %H:%M:%S') $1" local message="[WARN] $(date '+%Y-%m-%d %H:%M:%S') $1"
echo -e "${YELLOW}[WARN]${NC} $1" # 处理可能的中文字符显示问题
echo -e "${YELLOW}[WARN]${NC} $1" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "[WARN] $1"
echo "$message" >> "$LOG_FILE" echo "$message" >> "$LOG_FILE"
} }
log_error() { log_error() {
local message="[ERROR] $(date '+%Y-%m-%d %H:%M:%S') $1" local message="[ERROR] $(date '+%Y-%m-%d %H:%M:%S') $1"
echo -e "${RED}[ERROR]${NC} $1" # 处理可能的中文字符显示问题
echo -e "${RED}[ERROR]${NC} $1" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "[ERROR] $1"
echo "$message" >> "$LOG_FILE" echo "$message" >> "$LOG_FILE"
} }
log_debug() { log_debug() {
local message="[DEBUG] $(date '+%Y-%m-%d %H:%M:%S') $1" local message="[DEBUG] $(date '+%Y-%m-%d %H:%M:%S') $1"
echo -e "${BLUE}[DEBUG]${NC} $1" # 处理可能的中文字符显示问题
echo -e "${BLUE}[DEBUG]${NC} $1" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "[DEBUG] $1"
echo "$message" >> "$LOG_FILE" echo "$message" >> "$LOG_FILE"
} }
...@@ -46,22 +115,24 @@ show_operation_summary() { ...@@ -46,22 +115,24 @@ show_operation_summary() {
local status="$2" local status="$2"
echo echo
echo -e "${CYAN}===========================================${NC}" echo -e "${CYAN}===========================================${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "==========================================="
echo -e "${CYAN}操作完成摘要${NC}" echo -e "${CYAN}操作完成摘要${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "操作完成摘要"
echo -e "${CYAN}===========================================${NC}" echo -e "${CYAN}===========================================${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "==========================================="
echo -e "操作名称: ${PURPLE}${operation_name}${NC}" echo -e "操作名称: ${PURPLE}${operation_name}${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "操作名称: ${operation_name}"
echo -e "操作状态: $status" echo -e "操作状态: $status" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "操作状态: $status"
echo -e "${CYAN}===========================================${NC}" echo -e "${CYAN}===========================================${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "==========================================="
echo echo
} }
# 检测平台类型 # 检测平台类型
detect_platform() { detect_platform() {
if [ -d "/data" ]; then # 检查是否存在新统一平台目录
log_debug "检测到/data目录,判定为新统一平台" if [ -d "/data/services/api" ]; then
log_debug "检测到新统一平台目录"
echo "new" echo "new"
elif [ -d "/var/www" ]; then # 检查是否存在标准版平台目录
log_debug "检测到/var/www目录,判定为标准版平台" elif [ -d "/var/www/java" ]; then
log_debug "检测到标准版平台目录"
echo "standard" echo "standard"
else else
log_debug "未检测到特定平台目录,返回unknown" log_debug "未检测到特定平台目录,返回unknown"
...@@ -74,7 +145,8 @@ confirm_action() { ...@@ -74,7 +145,8 @@ confirm_action() {
local message="$1" local message="$1"
local response local response
echo -e -n "${YELLOW}$message (y/N): ${NC}" # 处理中文字符显示问题
echo -e -n "${YELLOW}$message (y/N): ${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo -n "$message (y/N): "
read response read response
case "$response" in case "$response" in
...@@ -1857,14 +1929,16 @@ show_menu() { ...@@ -1857,14 +1929,16 @@ show_menu() {
;; ;;
esac esac
clear # 清理屏幕并处理可能的字符显示问题
echo -e "${BLUE}===========================================${NC}" clear 2>/dev/null || printf '\033[2J\033[H'
echo -e "${BLUE} 常见问题处理工具${NC}"
echo -e "${BLUE}===========================================${NC}" echo -e "${BLUE}===========================================${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "==========================================="
echo -e "${BLUE} 常见问题处理工具${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo " 常见问题处理工具"
echo -e "${BLUE}===========================================${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "==========================================="
echo echo
echo -e "${YELLOW}当前平台类型: $platform_name${NC}" echo -e "${YELLOW}当前平台类型: $platform_name${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "当前平台类型: $platform_name"
echo echo
echo -e "${GREEN}主功能菜单:${NC}" echo -e "${GREEN}主功能菜单:${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "主功能菜单:"
echo " 1. 更新版本包" echo " 1. 更新版本包"
echo " 1.1 更新预定系统对内后端包" echo " 1.1 更新预定系统对内后端包"
echo " 1.2 更新预定系统对外后端包" echo " 1.2 更新预定系统对外后端包"
...@@ -1900,7 +1974,7 @@ show_menu() { ...@@ -1900,7 +1974,7 @@ show_menu() {
echo echo
echo " 0. 退出" echo " 0. 退出"
echo echo
echo -e "${BLUE}===========================================${NC}" echo -e "${BLUE}===========================================${NC}" | iconv -f UTF-8 -t UTF-8//IGNORE 2>/dev/null || echo "==========================================="
echo echo
} }
...@@ -1921,7 +1995,8 @@ get_user_choice() { ...@@ -1921,7 +1995,8 @@ get_user_choice() {
fi fi
# 检查输入是否有效 # 检查输入是否有效
if [[ "$valid_choices" == *"$choice"* ]]; then # 使用更严格的验证方法,确保输入是一个独立的有效选项
if [[ ",$valid_choices," == *",$choice,"* ]]; then
echo "$choice" echo "$choice"
return return
else else
...@@ -1930,15 +2005,13 @@ get_user_choice() { ...@@ -1930,15 +2005,13 @@ get_user_choice() {
done done
} }
# 显示子菜单并获取选择
show_submenu() { show_submenu() {
local main_choice="$1" local main_choice=$1
local platform="$2" local platform=$2
local sub_choice=""
case $main_choice in case $main_choice in
1) 1)
sub_choice=$(get_user_choice "请选择子操作 [1.1-1.6, 或按回车全选]: " "1.1,1.2,1.3,1.4,1.5,1.6,") sub_choice=$(get_user_choice "请选择子操作 [1.1-1.6, 或按回车全选]: " "1.1,1.2,1.3,1.4,1.5,1.6")
log_info "用户选择子操作: $sub_choice" log_info "用户选择子操作: $sub_choice"
case $sub_choice in case $sub_choice in
...@@ -1973,7 +2046,51 @@ show_submenu() { ...@@ -1973,7 +2046,51 @@ show_submenu() {
update_frontend "$platform" update_frontend "$platform"
update_backend "$platform" update_backend "$platform"
update_ops_backend "$platform" update_ops_backend "$platform"
update_ops_frontend "$platform" #!/bin/bash
# 日志函数
log_info() {
echo -e "\033[32m[INFO] $1\033[0m"
}
log_warn() {
echo -e "\033[33m[WARN] $1\033[0m"
}
log_error() {
echo -e "\033[31m[ERROR] $1\033[0m"
}
# 交互式模式函数
interactive_mode() {
local platform=$(detect_platform)
if [ "$platform" = "unknown" ]; then
log_error "无法检测到有效的平台类型"
exit 1
fi
log_info "检测到平台类型: $platform"
local main_choice=$(get_user_choice "请选择操作 [1-4]: " "1,2,3,4")
log_info "用户选择操作: $main_choice"
case $main_choice in
1)
sub_choice=$(get_user_choice "请选择子操作 [1.1-1.3]: " "1.1,1.2,1.3")
log_info "用户选择子操作: $sub_choice"
case $sub_choice in
1.1)
log_info "执行更新内部后端jar"
update_inner_backend_jar "$platform"
;;
1.2)
log_info "执行更新外部后端jar"
update_external_backend_jar "$platform"
;;
1.3)
log_info "执行更新前端"
update_frontend "$platform"
;; ;;
*) *)
log_error "无效的选择: $sub_choice" log_error "无效的选择: $sub_choice"
...@@ -1981,7 +2098,7 @@ show_submenu() { ...@@ -1981,7 +2098,7 @@ show_submenu() {
esac esac
;; ;;
2) 2)
sub_choice=$(get_user_choice "请选择子操作 [2.1-2.3, 或按回车全选]: " "2.1,2.2,2.3,") sub_choice=$(get_user_choice "请选择子操作 [2.1-2.3, 或按回车全选]: " "2.1,2.2,2.3")
log_info "用户选择子操作: $sub_choice" log_info "用户选择子操作: $sub_choice"
case $sub_choice in case $sub_choice in
...@@ -2008,6 +2125,10 @@ show_submenu() { ...@@ -2008,6 +2125,10 @@ show_submenu() {
;; ;;
esac esac
;; ;;
3)
log_info "执行修复配置文件IP不对问题"
fix_ip_configurations "$platform"
;;
4) 4)
sub_choice=$(get_user_choice "请选择子操作 [4.1-4.4]: " "4.1,4.2,4.3,4.4") sub_choice=$(get_user_choice "请选择子操作 [4.1-4.4]: " "4.1,4.2,4.3,4.4")
log_info "用户选择子操作: $sub_choice" log_info "用户选择子操作: $sub_choice"
...@@ -2037,34 +2158,6 @@ show_submenu() { ...@@ -2037,34 +2158,6 @@ show_submenu() {
*) *)
# 对于不需要子菜单的选项,直接执行 # 对于不需要子菜单的选项,直接执行
case $main_choice in case $main_choice in
3)
log_info "执行修复配置文件IP不对问题"
fix_ip_configurations "$platform"
;;
5)
log_info "执行导出现场日志文件并压缩"
export_and_compress_logs "$platform"
;;
6)
log_info "执行修复对外后端服务异常掉线"
fix_external_service_disconnect "$platform"
;;
7)
log_info "执行修复ntp服务配置或启动问题"
fix_ntp_config
;;
8)
log_info "执行修复端口开放问题"
fix_port_access "$platform"
;;
9)
log_info "执行修复服务器DNS异常问题"
fix_dns_config
;;
10)
log_info "执行打包备份现场环境数据"
backup_environment_data "$platform"
;;
*) *)
log_error "无效的选择: $main_choice" log_error "无效的选择: $main_choice"
;; ;;
...@@ -2073,45 +2166,8 @@ show_submenu() { ...@@ -2073,45 +2166,8 @@ show_submenu() {
esac esac
} }
# 交互式模式 # 脚本入口
interactive_mode() { main "$@"
local platform=$(detect_platform)
if [ "$platform" = "unknown" ]; then
log_error "无法检测到有效的平台类型"
echo -n "请手动指定平台类型 (new/standard): "
read platform
if [ "$platform" != "new" ] && [ "$platform" != "standard" ]; then
log_error "无效的平台类型,退出程序"
exit 1
fi
else
log_info "检测到平台类型: $([ "$platform" = "new" ] && echo "新统一平台" || echo "标准版平台")"
fi
while true; do
show_menu
local choice=$(get_user_choice "请选择操作 [0-10]: " "0,1,2,3,4,5,6,7,8,9,10")
log_info "用户选择: $choice"
case $choice in
0)
log_info "用户选择退出程序"
log_info "退出程序"
exit 0
;;
*)
show_submenu "$choice" "$platform"
;;
esac
echo
echo -e "${YELLOW}按回车键继续...${NC}"
read
done
}
# 主函数 # 主函数
main() { main() {
...@@ -2185,6 +2241,10 @@ main() { ...@@ -2185,6 +2241,10 @@ main() {
log_info "执行操作: fix_dns" log_info "执行操作: fix_dns"
fix_dns_config fix_dns_config
;; ;;
backup_environment_data)
log_info "执行操作: backup_environment_data"
backup_environment_data "$platform"
;;
*) *)
log_error "未知操作: $2" log_error "未知操作: $2"
exit 1 exit 1
...@@ -2205,5 +2265,78 @@ main() { ...@@ -2205,5 +2265,78 @@ main() {
log_info "脚本执行完毕" log_info "脚本执行完毕"
} }
}
# 显示帮助信息
show_help() {
echo "Usage: $0 [OPTIONS] [COMMAND]"
echo ""
echo "OPTIONS:"
echo " -h, --help 显示此帮助信息"
echo " -v, --version 显示版本信息"
echo ""
echo "COMMANDS:"
echo " repair 尝试自动修复常见问题"
echo " check 检查系统状态"
echo " clean 清理临时文件"
echo ""
}
# 显示版本信息
show_version() {
echo "Issue Handler Tool v1.0"
}
```
ubains-module-test/辅助工具/脚本工具/常见问题处理/issue_handler.sh
```bash
<<<<<<< SEARCH
main "$@"
main() {
if [ $# -gt 0 ]; then
case "$1" in
-h|--help)
show_help
exit 0
;;
-v|--version)
show_version
exit 0
;;
repair|check|clean)
log_info "执行命令: $1"
case "$1" in
repair)
perform_repair
;;
check)
perform_check
;;
clean)
perform_clean
;;
*)
log_error "未知操作: $1"
exit 1
;;
esac
;;
*)
log_error "未知参数: $1"
exit 1
;;
esac
else
# 否则进入交互式模式
log_info "进入交互式模式"
interactive_mode
fi
log_info "脚本执行完毕"
}
# 脚本入口
main "$@"
# 脚本入口 # 脚本入口
main "$@" main "$@"
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论