From 4f299a8bf1966d2a14fe7607a24675b08a8228c0 Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Tue, 18 Nov 2025 10:04:11 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20config=E5=8F=98=E6=9B=B4=EF=BC=8C?= =?UTF-8?q?=E5=8F=8A=E5=8C=B9=E9=85=8D=E6=A8=A1=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/patch_tools/docker-compose.yml | 4 +-- scripts/patch_tools/patch_config.sh | 42 ++++++++++++++++++-------- scripts/patch_tools/patch_generator.sh | 6 ++-- scripts/patch_tools/patch_workflow.sh | 22 +++++++++----- 4 files changed, 48 insertions(+), 26 deletions(-) diff --git a/scripts/patch_tools/docker-compose.yml b/scripts/patch_tools/docker-compose.yml index fa3a0066a..a0fe647ee 100644 --- a/scripts/patch_tools/docker-compose.yml +++ b/scripts/patch_tools/docker-compose.yml @@ -12,5 +12,5 @@ services: volumes: - ./:/working_dir/scripts - ../patch-dir:/working_dir/patchs - - ../../ftp-src/config:/working_dir/old-shop-src - - ../../src/config:/working_dir/new-shop-src + - ../../ftp-src/:/working_dir/old-shop-src + - ../../src/:/working_dir/new-shop-src diff --git a/scripts/patch_tools/patch_config.sh b/scripts/patch_tools/patch_config.sh index 5b3ca7e47..549f39a36 100644 --- a/scripts/patch_tools/patch_config.sh +++ b/scripts/patch_tools/patch_config.sh @@ -18,7 +18,21 @@ PATCH_EMAIL="devops@aigc-quickapp.com" ## 包含的文件模式 INCLUDE_PATTERNS=( - ".+/.*" # 匹配所有子目录下的文件 + ".+/.*" # 匹配所有子目录下的所有文件 + ".env" + ".htaccess" + '.user.ini' + '404.html' + "composer.json" + "index.html" + "index.php" + "install.lock" + "install.php" + "nginx.htaccess" + "think" + "LICENSE" + "README.md" + "robots.txt" ) ## 排除的文件模式 @@ -29,19 +43,21 @@ EXCLUDE_PATTERNS=( "*.swp" "*.swx" "^.github/" - "/node_modules/*" - "/__pycache__/*" - # 排除以下一级文件夹 + # 排除任何位置的node_modules文件夹及其所有子目录和文件 + ".*/node_modules($|/.*)" + # 排除任何位置的__pycache__文件夹及其所有子目录和文件 + ".*/__pycache__($|/.*)" + # 排除根目录下的一级文件夹及其所有子目录和文件 "^.git/" - "^cache/" - "^temp/" - "^tmp/" - "^logs/" - "^runtime/" - "^uploads/" - "^attachment/" - "^h5/" - "^hwapp/" + "^cache($|/.*)" + "^temp($|/.*)" + "^tmp($|/.*)" + "^logs($|/.*)" + "^runtime($|/.*)" + "^uploads($|/.*)" + "^attachment($|/.*)" + "^h5($|/.*)" + "^hwapp($|/.*)" ".DS_Store" "Thumbs.db" ) diff --git a/scripts/patch_tools/patch_generator.sh b/scripts/patch_tools/patch_generator.sh index 0008b8f59..6f3ccf7eb 100644 --- a/scripts/patch_tools/patch_generator.sh +++ b/scripts/patch_tools/patch_generator.sh @@ -335,10 +335,10 @@ scan_directory() { # 获取文件信息 local file_info if file_info=$(get_file_info "$file_path" 2>/dev/null); then - # 检查是否应该包含 - if should_include_file "$file_path" "$file_info"; then + # 检查是否应该包含该文件 + local relative_path="${file_path#$base_dir/}" # 这里一定要使用相对路径,方便在config中配置匹配模式 + if should_include_file "$relative_path" "$file_info"; then local file_hash=$(get_file_hash "$file_path" "$HASH_ALGORITHM") - local relative_path="${file_path#$base_dir/}" echo "$relative_path|$file_info|$file_hash" >> "$output_file" ((file_count++)) diff --git a/scripts/patch_tools/patch_workflow.sh b/scripts/patch_tools/patch_workflow.sh index 7049ea95a..1ea2bbf2f 100644 --- a/scripts/patch_tools/patch_workflow.sh +++ b/scripts/patch_tools/patch_workflow.sh @@ -18,7 +18,7 @@ error() { echo -e "${RED}[ERROR]${NC} $1"; } full_patch_workflow() { local source_dir="$1" local target_dir="$2" - local patch_name="$3" + local patch_name="$3" # 补丁文件路径 log "开始完整补丁管理工作流" echo "========================================" @@ -109,9 +109,13 @@ rollback_workflow() { # 主函数 main() { case "${1:-}" in - "generate") + "generate-full") shift full_patch_workflow "$@" + ;; + "generate") + shift + "$SCRIPT_DIR/patch_generator.sh" "$@" ;; "apply") shift @@ -132,14 +136,16 @@ main() { *) echo "用法: $0 [args]" echo "命令:" - echo " generate <源目录> <目标目录> <补丁名称> # 完整工作流" - echo " apply <补丁包路径> [dry-run] # 应用补丁" - echo " rollback [回滚包路径] # 回滚补丁" - echo " verify <补丁包路径> [验证类型] # 验证补丁" - echo " batch-verify <目录> # 批量验证" + echo " generate-full <旧目录> <新目录> [补丁名称] # 生成补丁" + echo " generate <旧目录> <新目录> [补丁名称] # 生成补丁" + echo " apply <补丁包路径> [dry-run] # 应用补丁" + echo " rollback [回滚包路径] # 回滚补丁" + echo " verify <补丁包路径> [验证类型] # 验证补丁" + echo " batch-verify <目录> # 批量验证" echo "" echo "示例:" - echo " $0 generate /old/version /new/version security-hotfix" + echo " 进入项目目录,然后执行" + echo " $0 generate /old/version /new/version" echo " $0 apply /opt/patches/patch.tar.gz dry-run" echo " $0 rollback /var/backups/patch/backup.tar.gz" exit 1