From 680f3877fb7031c7454a4654ca752254554400e8 Mon Sep 17 00:00:00 2001 From: zj <1052308357@qq.comm> Date: Thu, 22 Jan 2026 19:27:21 +0800 Subject: [PATCH] fix --- tms-bbt-config.install | 118 ++++++++++++++++++++++++++++++++--------- 1 file changed, 94 insertions(+), 24 deletions(-) diff --git a/tms-bbt-config.install b/tms-bbt-config.install index f12a2ea..65f1967 100644 --- a/tms-bbt-config.install +++ b/tms-bbt-config.install @@ -37,34 +37,104 @@ post_install() { ln -s /media/cinema /home/smart/Desktop/片库 chown smart:smart /home/smart/Desktop/* - if [ -f "/usr/bin/ffmpeg.bin" ]; then - rm -f "/home/smart/ffmpeg" + FILE_ffmpeg="/usr/bin/ffmpeg" + FILE_HOME_ffmpeg="/home/smart/ffmpeg" + + SHOULD_EXECUTE_FIX_BLOCK=false # 默认不执行修复 + + # 检查 ffmpeg 文件是否存在 + if [ ! -f "$FILE_ffmpeg" ]; then + echo "警告: $FILE_ffmpeg 不存在,取消 ffmpeg 修复。" + # SHOULD_EXECUTE_FIX_BLOCK 保持为 false + elif [ ! -f "$FILE_HOME_ffmpeg" ]; then + echo "警告: $FILE_HOME_ffmpeg 不存在,取消 ffmpeg 修复。" + # SHOULD_EXECUTE_FIX_BLOCK 保持为 false else - if [ -f "/usr/bin/ffmpeg" ] && [ -f "/home/smart/ffmpeg" ]; then - echo "fix ffmpeg" - mv "/usr/bin/ffmpeg" "/usr/bin/ffmpeg.bin" - mv "/home/smart/ffmpeg" "/usr/bin/ffmpeg" - chmod 755 "/usr/bin/ffmpeg" - else - rm -f "/home/smart/ffmpeg" - echo "no ffmpeg" - fi - + # 两个 ffmpeg 文件都存在,进行 SHA256 校验 + echo "两个 ffmpeg 文件都存在,正在计算 SHA256 校验和..." + + HASH_USR=$(sha256sum "$FILE_ffmpeg" | awk '{print $1}') + HASH_HOME=$(sha256sum "$FILE_HOME_ffmpeg" | awk '{print $1}') + + echo "$FILE_ffmpeg 的 SHA256: $HASH_USR" + echo "$FILE_HOME_ffmpeg 的 SHA256: $HASH_HOME" + + if [ "$HASH_USR" != "$HASH_HOME" ]; then + echo "两个 ffmpeg 文件内容不一致 (SHA256 不匹配),将执行修复逻辑。" + SHOULD_EXECUTE_FIX_BLOCK=true # 设置为 true,表示需要修复 + else + echo "两个 ffmpeg 文件内容一致 (SHA256 匹配),无需操作。" + # SHOULD_EXECUTE_FIX_BLOCK 保持为 false + fi fi - if [ -f "dcpomatic2_create_original" ]; then - rm -f "/home/smart/dcpomatic2_create" + # 根据 SHOULD_EXECUTE_FIX_BLOCK 的值决定是否执行 ffmpeg 修复 + if [ "$SHOULD_EXECUTE_FIX_BLOCK" = true ]; then + echo "--- 开始执行 ffmpeg 修复逻辑 ---" + if [ -f "$FILE_ffmpeg.bin" ]; then # 使用变量 $FILE_ffmpeg.bin + echo "警告: $FILE_ffmpeg.bin 已存在,备份为 ${FILE_ffmpeg}.bin.b。" + mv "$FILE_ffmpeg.bin" "${FILE_ffmpeg}.bin.b" + fi + echo "fix ffmpeg: 备份原文件并替换。" + mv "$FILE_ffmpeg" "$FILE_ffmpeg.bin" + mv "$FILE_HOME_ffmpeg" "$FILE_ffmpeg" + chmod 755 "$FILE_ffmpeg" + echo "--- ffmpeg 修复逻辑执行完毕 ---" else - if [ -f "/usr/bin/dcpomatic2_create" ] && [ -f "/home/smart/dcpomatic2_create" ]; then - echo "fix dcpomatic2_create" - mv "/usr/bin/dcpomatic2_create" "/usr/bin/dcpomatic2_create_original" - mv "/home/smart/dcpomatic2_create" "/usr/bin/dcpomatic2_create" - chmod 755 "/usr/bin/dcpomatic2_create" - else - rm -f "/home/smart/dcpomatic2_create" - echo "no dcpomatic2_create" - fi - + # 如果不执行修复(文件缺失或内容一致),则清理 /home/smart/ffmpeg + echo "ffmpeg 修复未执行(原因:文件缺失或内容一致),清理 $FILE_HOME_ffmpeg (如果存在)。" + rm -f "$FILE_HOME_ffmpeg" + fi + + + FILE_USR="/usr/bin/dcpomatic2_create" + FILE_HOME="/home/smart/dcpomatic2_create" + FILE_USR_ORIGINAL="/usr/bin/dcpomatic2_create_original" # 定义原始文件备份路径变量 + + SHOULD_EXECUTE_FIX_BLOCK_DCP=false # 为 dcpomatic2_create 使用独立的变量 + + # 检查 dcpomatic2_create 文件是否存在 + if [ ! -f "$FILE_USR" ]; then + echo "警告: $FILE_USR 不存在,取消 dcpomatic2_create 修复。" + # SHOULD_EXECUTE_FIX_BLOCK_DCP 保持为 false + elif [ ! -f "$FILE_HOME" ]; then + echo "警告: $FILE_HOME 不存在,取消 dcpomatic2_create 修复。" + # SHOULD_EXECUTE_FIX_BLOCK_DCP 保持为 false + else + # 两个 dcpomatic2_create 文件都存在,进行 SHA256 校验 + echo "两个 dcpomatic2_create 文件都存在,正在计算 SHA256 校验和..." + + HASH_USR=$(sha256sum "$FILE_USR" | awk '{print $1}') + HASH_HOME=$(sha256sum "$FILE_HOME" | awk '{print $1}') + + echo "$FILE_USR 的 SHA256: $HASH_USR" + echo "$FILE_HOME 的 SHA256: $HASH_HOME" + + if [ "$HASH_USR" != "$HASH_HOME" ]; then + echo "两个 dcpomatic2_create 文件内容不一致 (SHA256 不匹配),将执行修复逻辑。" + SHOULD_EXECUTE_FIX_BLOCK_DCP=true # 设置为 true,表示需要修复 + else + echo "两个 dcpomatic2_create 文件内容一致 (SHA256 匹配),无需操作。" + # SHOULD_EXECUTE_FIX_BLOCK_DCP 保持为 false + fi + fi + + # 根据 SHOULD_EXECUTE_FIX_BLOCK_DCP 的值决定是否执行 dcpomatic2_create 修复 + if [ "$SHOULD_EXECUTE_FIX_BLOCK_DCP" = true ]; then + echo "--- 开始执行 dcpomatic2_create 修复逻辑 ---" + if [ -f "$FILE_USR_ORIGINAL" ]; then + echo "警告: $FILE_USR_ORIGINAL 已存在,备份为 ${FILE_USR_ORIGINAL}_b。" + mv "$FILE_USR_ORIGINAL" "${FILE_USR_ORIGINAL}_b" + fi + echo "fix dcpomatic2_create: 备份原文件并替换。" + mv "$FILE_USR" "$FILE_USR_ORIGINAL" + mv "$FILE_HOME" "$FILE_USR" + chmod 755 "$FILE_USR" + echo "--- dcpomatic2_create 修复逻辑执行完毕 ---" + else + # 如果不执行修复(文件缺失或内容一致),则清理 /home/smart/dcpomatic2_create + echo "dcpomatic2_create 修复未执行(原因:文件缺失或内容一致),清理 $FILE_HOME (如果存在)。" + rm -f "$FILE_HOME" fi