chore: config变更,及匹配模式优化
This commit is contained in:
@@ -12,5 +12,5 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./:/working_dir/scripts
|
- ./:/working_dir/scripts
|
||||||
- ../patch-dir:/working_dir/patchs
|
- ../patch-dir:/working_dir/patchs
|
||||||
- ../../ftp-src/config:/working_dir/old-shop-src
|
- ../../ftp-src/:/working_dir/old-shop-src
|
||||||
- ../../src/config:/working_dir/new-shop-src
|
- ../../src/:/working_dir/new-shop-src
|
||||||
|
|||||||
@@ -18,7 +18,21 @@ PATCH_EMAIL="devops@aigc-quickapp.com"
|
|||||||
|
|
||||||
## 包含的文件模式
|
## 包含的文件模式
|
||||||
INCLUDE_PATTERNS=(
|
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"
|
"*.swp"
|
||||||
"*.swx"
|
"*.swx"
|
||||||
"^.github/"
|
"^.github/"
|
||||||
"/node_modules/*"
|
# 排除任何位置的node_modules文件夹及其所有子目录和文件
|
||||||
"/__pycache__/*"
|
".*/node_modules($|/.*)"
|
||||||
# 排除以下一级文件夹
|
# 排除任何位置的__pycache__文件夹及其所有子目录和文件
|
||||||
|
".*/__pycache__($|/.*)"
|
||||||
|
# 排除根目录下的一级文件夹及其所有子目录和文件
|
||||||
"^.git/"
|
"^.git/"
|
||||||
"^cache/"
|
"^cache($|/.*)"
|
||||||
"^temp/"
|
"^temp($|/.*)"
|
||||||
"^tmp/"
|
"^tmp($|/.*)"
|
||||||
"^logs/"
|
"^logs($|/.*)"
|
||||||
"^runtime/"
|
"^runtime($|/.*)"
|
||||||
"^uploads/"
|
"^uploads($|/.*)"
|
||||||
"^attachment/"
|
"^attachment($|/.*)"
|
||||||
"^h5/"
|
"^h5($|/.*)"
|
||||||
"^hwapp/"
|
"^hwapp($|/.*)"
|
||||||
".DS_Store"
|
".DS_Store"
|
||||||
"Thumbs.db"
|
"Thumbs.db"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -335,10 +335,10 @@ scan_directory() {
|
|||||||
# 获取文件信息
|
# 获取文件信息
|
||||||
local file_info
|
local file_info
|
||||||
if file_info=$(get_file_info "$file_path" 2>/dev/null); then
|
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 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"
|
echo "$relative_path|$file_info|$file_hash" >> "$output_file"
|
||||||
((file_count++))
|
((file_count++))
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
|||||||
full_patch_workflow() {
|
full_patch_workflow() {
|
||||||
local source_dir="$1"
|
local source_dir="$1"
|
||||||
local target_dir="$2"
|
local target_dir="$2"
|
||||||
local patch_name="$3"
|
local patch_name="$3" # 补丁文件路径
|
||||||
|
|
||||||
log "开始完整补丁管理工作流"
|
log "开始完整补丁管理工作流"
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
@@ -109,9 +109,13 @@ rollback_workflow() {
|
|||||||
# 主函数
|
# 主函数
|
||||||
main() {
|
main() {
|
||||||
case "${1:-}" in
|
case "${1:-}" in
|
||||||
"generate")
|
"generate-full")
|
||||||
shift
|
shift
|
||||||
full_patch_workflow "$@"
|
full_patch_workflow "$@"
|
||||||
|
;;
|
||||||
|
"generate")
|
||||||
|
shift
|
||||||
|
"$SCRIPT_DIR/patch_generator.sh" "$@"
|
||||||
;;
|
;;
|
||||||
"apply")
|
"apply")
|
||||||
shift
|
shift
|
||||||
@@ -132,14 +136,16 @@ main() {
|
|||||||
*)
|
*)
|
||||||
echo "用法: $0 <command> [args]"
|
echo "用法: $0 <command> [args]"
|
||||||
echo "命令:"
|
echo "命令:"
|
||||||
echo " generate <源目录> <目标目录> <补丁名称> # 完整工作流"
|
echo " generate-full <旧目录> <新目录> [补丁名称] # 生成补丁"
|
||||||
echo " apply <补丁包路径> [dry-run] # 应用补丁"
|
echo " generate <旧目录> <新目录> [补丁名称] # 生成补丁"
|
||||||
echo " rollback [回滚包路径] # 回滚补丁"
|
echo " apply <补丁包路径> [dry-run] # 应用补丁"
|
||||||
echo " verify <补丁包路径> [验证类型] # 验证补丁"
|
echo " rollback [回滚包路径] # 回滚补丁"
|
||||||
echo " batch-verify <目录> # 批量验证"
|
echo " verify <补丁包路径> [验证类型] # 验证补丁"
|
||||||
|
echo " batch-verify <目录> # 批量验证"
|
||||||
echo ""
|
echo ""
|
||||||
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 apply /opt/patches/patch.tar.gz dry-run"
|
||||||
echo " $0 rollback /var/backups/patch/backup.tar.gz"
|
echo " $0 rollback /var/backups/patch/backup.tar.gz"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user