coder-common-thin-backend/script/batch-refactor.sh
Leo aea6426fa3 chore: 添加picture文件夹到.gitignore并从仓库中移除
- 在.gitignore中添加picture/忽略规则
- 从git索引中移除已上传的头像文件
- 避免将来头像文件被误提交到仓库
2025-07-07 15:18:51 +08:00

189 lines
5.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 批量重构脚本 - 使用配置文件进行批量重构
# Author: Leocoder
# Version: 1.0
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
WHITE='\033[1;37m'
NC='\033[0m' # No Color
print_success() {
echo -e "${GREEN}$1${NC}"
}
print_error() {
echo -e "${RED}$1${NC}"
}
print_info() {
echo -e "${PURPLE} $1${NC}"
}
print_warning() {
echo -e "${YELLOW}$1${NC}"
}
# 检查配置文件
check_config_file() {
local config_file="$1"
if [ ! -f "$config_file" ]; then
print_error "配置文件不存在: $config_file"
echo ""
echo "请先创建配置文件:"
echo "1. 复制 refactor-config.example 为 refactor-config.conf"
echo "2. 编辑 refactor-config.conf 设置正确的值"
echo "3. 运行: ./batch-refactor.sh refactor-config.conf"
exit 1
fi
}
# 加载配置文件
load_config() {
local config_file="$1"
print_info "加载配置文件: $config_file"
# 读取配置文件
source "$config_file"
# 验证必需的配置项
local required_vars=("PROJECT_DIR" "OLD_GROUP_ID" "NEW_GROUP_ID" "OLD_ARTIFACT_ID" "NEW_ARTIFACT_ID" "OLD_MODULE_PREFIX" "NEW_MODULE_PREFIX")
for var in "${required_vars[@]}"; do
if [ -z "${!var}" ]; then
print_error "配置项 $var 未设置"
exit 1
fi
done
print_success "配置加载成功"
}
# 显示配置信息
show_config() {
echo ""
echo -e "${WHITE}批量重构配置:${NC}"
echo -e "${CYAN}项目目录:${NC} $PROJECT_DIR"
echo -e "${CYAN}旧 GroupId:${NC} $OLD_GROUP_ID"
echo -e "${CYAN}新 GroupId:${NC} $NEW_GROUP_ID"
echo -e "${CYAN}旧 ArtifactId:${NC} $OLD_ARTIFACT_ID"
echo -e "${CYAN}新 ArtifactId:${NC} $NEW_ARTIFACT_ID"
echo -e "${CYAN}旧模块前缀:${NC} $OLD_MODULE_PREFIX"
echo -e "${CYAN}新模块前缀:${NC} $NEW_MODULE_PREFIX"
if [ -n "$OLD_DATABASE_NAME" ]; then
echo -e "${CYAN}旧数据库名:${NC} $OLD_DATABASE_NAME"
echo -e "${CYAN}新数据库名:${NC} $NEW_DATABASE_NAME"
fi
echo ""
}
# 执行重构
execute_refactor() {
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
local refactor_script="$script_dir/project-refactor.sh"
if [ ! -f "$refactor_script" ]; then
print_error "重构脚本不存在: $refactor_script"
exit 1
fi
# 创建临时输入文件
local temp_input=$(mktemp)
# 生成自动化输入
cat > "$temp_input" << EOF
$PROJECT_DIR
$OLD_GROUP_ID
$OLD_ARTIFACT_ID
$OLD_MODULE_PREFIX
$NEW_GROUP_ID
$NEW_ARTIFACT_ID
$NEW_MODULE_PREFIX
$OLD_DATABASE_NAME
$NEW_DATABASE_NAME
y
EOF
if [ "$CREATE_BACKUP" = "true" ]; then
echo "y" >> "$temp_input"
else
echo "n" >> "$temp_input"
fi
# 执行重构脚本
print_info "开始执行重构..."
"$refactor_script" < "$temp_input"
# 清理临时文件
rm -f "$temp_input"
if [ $? -eq 0 ]; then
print_success "批量重构完成!"
else
print_error "重构过程中出现错误"
exit 1
fi
}
# 主函数
main() {
echo -e "${CYAN}"
echo "╔══════════════════════════════════════════════════════════════════════════════╗"
echo "║ 批量重构脚本 ║"
echo "║ Batch Refactoring Tool ║"
echo "╚══════════════════════════════════════════════════════════════════════════════╝"
echo -e "${NC}"
local config_file="$1"
if [ -z "$config_file" ]; then
config_file="refactor-config.conf"
print_info "使用默认配置文件: $config_file"
fi
check_config_file "$config_file"
load_config "$config_file"
show_config
if [ "$AUTO_CONFIRM" != "true" ]; then
echo -e "${YELLOW}警告: 此操作将修改项目中的所有相关文件!${NC}"
read -p "是否继续? (y/N): " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
print_info "操作已取消"
exit 0
fi
fi
execute_refactor
}
# 使用说明
usage() {
echo "使用方法:"
echo " $0 [配置文件]"
echo ""
echo "示例:"
echo " $0 # 使用默认配置文件 refactor-config.conf"
echo " $0 my-project-config.conf # 使用指定配置文件"
echo ""
echo "配置文件格式请参考 refactor-config.example"
}
# 参数检查
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
usage
exit 0
fi
# 执行主函数
main "$@"