pangu-user-platform/backend/scripts/change_author_to_pangu.sh

177 lines
5.3 KiB
Bash
Raw Normal View History

chore: 统一所有文件作者为pangu ## 修改范围 ### 受影响文件(9个) #### 1. Java文件(1个) - pangu-system/src/main/java/com/pangu/web/controller/system/SysLoginController.java - @author 湖北新华业务中台研发团队 → @author pangu #### 2. SQL脚本(5个) - sql/fix_admin_permissions.sh - 角色权限修复脚本 - sql/fix_charset.sh - 字符集修复脚本 - sql/import_menu.sh - 菜单导入脚本 - sql/fix_ruoyi_charset.sql - RuoYi乱码修复SQL - sql/sys_menu_complete.sql - 完整菜单数据SQL #### 3. SQL数据文件(3个) - sql/pangu_menu.sql - 盘古菜单数据 - sql/pangu_base_data.sql - 基础数据 - sql/pangu_school.sql - 学校数据 ### 修改内容 所有文件中的作者信息统一为: - 作者:湖北新华业务中台研发团队 → 作者:pangu - @author 湖北新华业务中台研发团队 → @author pangu ### 未修改的文件 其他文件中的作者字段已经是 `pangu` 或未设置作者,无需修改: - Java文件(80+):已经是 @author pangu ✅ - Vue文件(30+):无作者注释或已是正确格式 ✅ - JS文件(20+):无作者注释或已是正确格式 ✅ - Markdown文档:无需修改 ✅ ### 工具脚本 新增批量修改工具:`scripts/change_author_to_pangu.sh` **功能**: - 自动扫描Java、Vue、JS、SQL、Markdown文件 - 批量替换作者为pangu - 生成详细修改日志 - 支持多种作者格式(@author、作者:、Author:) **使用方法**: ```bash cd /path/to/pangu-user-platform ./scripts/change_author_to_pangu.sh ``` ### 统计信息 - ✅ 扫描文件:210个 - ✅ 修改文件:9个 - ✅ 跳过文件:201个(已是pangu或无作者) --- 作者:pangu
2026-02-01 13:27:32 +08:00
#!/bin/bash
# ============================================================
# 脚本名称change_author_to_pangu.sh
# 功能说明将项目中所有文件的作者统一改为pangu
# 作 者pangu
# 创建时间2026-01-31
# 使用方法:./change_author_to_pangu.sh
# ============================================================
set -e
PROJECT_ROOT="/Users/felix/hbxhWorkSpace/pangu-user-platform"
LOG_FILE="$PROJECT_ROOT/scripts/change_author_log.txt"
echo "======================================================"
echo " 批量修改作者为pangu"
echo "======================================================"
echo ""
echo "项目根目录: $PROJECT_ROOT"
echo "日志文件: $LOG_FILE"
echo ""
# 清空日志文件
> "$LOG_FILE"
# 统计变量
total_files=0
changed_files=0
# 定义需要替换的作者模式(支持多种格式)
declare -a OLD_AUTHORS=(
"湖北新华业务中台研发团队"
"admin"
"ruoyi"
"若依"
"RuoYi"
"pangu-dev"
)
# 替换函数
replace_author() {
local file=$1
local changed=0
# 备份原文件
cp "$file" "$file.bak.author"
# 替换 @author
if grep -q "@author" "$file" 2>/dev/null; then
for old_author in "${OLD_AUTHORS[@]}"; do
if grep -q "@author.*$old_author" "$file" 2>/dev/null; then
sed -i '' "s/@author.*$old_author.*/@author pangu/g" "$file"
changed=1
echo " - 替换 @author $old_author -> pangu" | tee -a "$LOG_FILE"
fi
done
# 处理其他 @author 格式
sed -i '' 's/@author \([^p][^ ]*\|[^ ]\+[^ ]\)/@author pangu/g' "$file"
fi
# 替换 作者:
if grep -q "作者:\|作 者:" "$file" 2>/dev/null; then
for old_author in "${OLD_AUTHORS[@]}"; do
if grep -q "作者:.*$old_author\|作 者:.*$old_author" "$file" 2>/dev/null; then
sed -i '' "s/作者:.*$old_author.*/作者pangu/g" "$file"
sed -i '' "s/作 者:.*$old_author.*/作 者pangu/g" "$file"
changed=1
echo " - 替换 作者:$old_author -> pangu" | tee -a "$LOG_FILE"
fi
done
fi
# 替换 Author:
if grep -q "Author:" "$file" 2>/dev/null; then
for old_author in "${OLD_AUTHORS[@]}"; do
if grep -q "Author:.*$old_author" "$file" 2>/dev/null; then
sed -i '' "s/Author:.*$old_author.*/Author: pangu/g" "$file"
changed=1
echo " - 替换 Author: $old_author -> pangu" | tee -a "$LOG_FILE"
fi
done
fi
# 如果有更改,删除备份;否则恢复
if [ $changed -eq 1 ]; then
rm -f "$file.bak.author"
return 0
else
mv "$file.bak.author" "$file"
return 1
fi
}
echo "🔍 正在扫描需要修改的文件..."
echo ""
# 扫描 Java 文件
echo "📁 处理 Java 文件..."
while IFS= read -r -d '' file; do
((total_files++))
if replace_author "$file"; then
((changed_files++))
echo "$file" | tee -a "$LOG_FILE"
fi
done < <(find "$PROJECT_ROOT/pangu-system" "$PROJECT_ROOT/pangu-admin" "$PROJECT_ROOT/pangu-common" "$PROJECT_ROOT/pangu-framework" -type f -name "*.java" -print0 2>/dev/null)
# 扫描 Vue 文件
echo ""
echo "📁 处理 Vue 文件..."
while IFS= read -r -d '' file; do
((total_files++))
if replace_author "$file"; then
((changed_files++))
echo "$file" | tee -a "$LOG_FILE"
fi
done < <(find "$PROJECT_ROOT/pangu-ui/src" -type f -name "*.vue" -print0 2>/dev/null)
# 扫描 JS 文件
echo ""
echo "📁 处理 JS 文件..."
while IFS= read -r -d '' file; do
((total_files++))
if replace_author "$file"; then
((changed_files++))
echo "$file" | tee -a "$LOG_FILE"
fi
done < <(find "$PROJECT_ROOT/pangu-ui/src" -type f -name "*.js" -print0 2>/dev/null)
# 扫描 SQL 文件
echo ""
echo "📁 处理 SQL 文件..."
while IFS= read -r -d '' file; do
# 跳过备份文件
if [[ "$file" == *.bak* ]] || [[ "$file" == *.backup* ]]; then
continue
fi
((total_files++))
if replace_author "$file"; then
((changed_files++))
echo "$file" | tee -a "$LOG_FILE"
fi
done < <(find "$PROJECT_ROOT/sql" -type f \( -name "*.sql" -o -name "*.sh" \) -print0 2>/dev/null)
# 扫描 Markdown 文档
echo ""
echo "📁 处理 Markdown 文档..."
while IFS= read -r -d '' file; do
((total_files++))
if replace_author "$file"; then
((changed_files++))
echo "$file" | tee -a "$LOG_FILE"
fi
done < <(find "$PROJECT_ROOT/docs" -type f -name "*.md" -print0 2>/dev/null)
# 处理 README
if [ -f "$PROJECT_ROOT/README.md" ]; then
((total_files++))
if replace_author "$PROJECT_ROOT/README.md"; then
((changed_files++))
echo "$PROJECT_ROOT/README.md" | tee -a "$LOG_FILE"
fi
fi
echo ""
echo "======================================================"
echo " ✅ 作者修改完成"
echo "======================================================"
echo ""
echo "📊 统计信息:"
echo " - 扫描文件总数: $total_files"
echo " - 修改文件数量: $changed_files"
echo " - 未修改文件数: $((total_files - changed_files))"
echo ""
echo "📄 详细日志: $LOG_FILE"
echo ""
echo "提示:所有修改已完成,请使用 git diff 检查变更"
echo ""