chore: config变更,及匹配模式优化
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -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++))
|
||||
|
||||
@@ -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 " 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
|
||||
|
||||
Reference in New Issue
Block a user