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

177 lines
5.3 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
# ============================================================
# 脚本名称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 ""