modify scripts

This commit is contained in:
2025-11-07 10:08:19 +08:00
parent 17356c79f9
commit 15c4f7b823
5 changed files with 115 additions and 105 deletions

View File

@ -0,0 +1,73 @@
#!/bin/bash
# 定义文件路径
SOURCE_PARSE_FILENAME="/usr/src/paperless/git_scripts/parse_filename.py"
DEST_PARSE_FILENAME="/usr/src/paperless/scripts/parse_filename.py"
SOURCE_PARSERS="/usr/src/paperless/git_scripts/parsers.py"
DEST_PARSERS="/usr/src/paperless/src/paperless_tesseract/parsers.py"
# 检查文件是否存在
check_files_exist() {
local missing=0
for file in "$SOURCE_PARSE_FILENAME" "$DEST_PARSE_FILENAME" "$SOURCE_PARSERS" "$DEST_PARSERS"; do
if [ ! -f "$file" ]; then
echo "错误:文件不存在 - $file"
missing=1
fi
done
if [ $missing -eq 1 ]; then
exit 1
fi
}
# 显示文件差异
show_diffs() {
echo "=== 检查 parse_filename.py 差异 ==="
diff -u "$DEST_PARSE_FILENAME" "$SOURCE_PARSE_FILENAME" || true # 差异不存在时不报错
echo -e "\n=== 检查 parsers.py 差异 ==="
diff -u "$DEST_PARSERS" "$SOURCE_PARSERS" || true
}
# 备份并替换文件
replace_files() {
# 备份目标文件
backup_file "$DEST_PARSE_FILENAME"
backup_file "$DEST_PARSERS"
# 执行替换
cp -f "$SOURCE_PARSE_FILENAME" "$DEST_PARSE_FILENAME"
cp -f "$SOURCE_PARSERS" "$DEST_PARSERS"
echo -e "\n=== 替换完成,以下是替换后的差异(应无差异) ==="
show_diffs
}
# 备份文件(添加 .bak 后缀,保留原权限)
backup_file() {
local file="$1"
local backup="$file.bak"
if [ -f "$backup" ]; then
# 若已有备份,先删除旧备份(避免累积过多)
rm -f "$backup"
fi
cp -a "$file" "$backup" # -a 保留权限和属性
echo "已备份:$file -> $backup"
}
# 主逻辑
check_files_exist
if [ "$1" = "check" ]; then
echo "=== 执行差异检查(不修改文件) ==="
show_diffs
elif [ "$1" = "replace" ]; then
echo "=== 执行文件替换(先备份) ==="
replace_files
else
echo "用法:$0 [check|replace]"
echo " check - 仅检查文件差异,不做修改"
echo " replace - 备份目标文件并替换,然后显示最终差异"
exit 1
fi