chore: config变更,及匹配模式优化

This commit is contained in:
2025-11-18 10:04:11 +08:00
parent f76320f732
commit 4f299a8bf1
4 changed files with 48 additions and 26 deletions

View File

@@ -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

View File

@@ -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"
)

View File

@@ -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++))

View File

@@ -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,10 +109,14 @@ rollback_workflow() {
# 主函数
main() {
case "${1:-}" in
"generate")
"generate-full")
shift
full_patch_workflow "$@"
;;
"generate")
shift
"$SCRIPT_DIR/patch_generator.sh" "$@"
;;
"apply")
shift
"$SCRIPT_DIR/patch_applier.sh" "$@"
@@ -132,14 +136,16 @@ main() {
*)
echo "用法: $0 <command> [args]"
echo "命令:"
echo " generate <目录> <目标目录> <补丁名称> # 完整工作流"
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