Files
tms-bbt-config-pkg/tms-bbt-config.install
2026-01-22 19:27:21 +08:00

142 lines
6.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# post_install: 在软件包安装后执行
post_install() {
update-desktop-database /usr/share/applications
echo "Checking for 'smart' user..."
if ! id -u smart &>/dev/null; then
echo "WARNING: User 'smart' does not exist. Please create the 'smart' user for SmartTMS to function correctly."
echo "You can create it with: sudo useradd -m smart"
else
# 处理 .bashrc
if [ -f "/home/smart/.bashrc" ]; then
mv "/home/smart/.bashrc_tms-config" "/home/smart/.bashrc"
chown smart:smart "/home/smart/.bashrc"
echo "Copied ~/.bashrc_tms-config to /home/smart/.bashrc."
else
# 如果 .bashrc 不存在,则直接复制我们的模板
cp "/home/smart/.bashrc_tms-config" "/home/smart/.bashrc"
chown smart:smart "/home/smart/.bashrc"
echo "Copied ~/.bashrc_tms-config to /home/smart/.bashrc."
fi
fi
echo "cp desktop"
cp -f '/usr/share/applications/barco-communicator.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/barco-commander.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/dcc2.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/dcc.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/tmsrestart.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/dcpomatic2.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/org.remmina.Remmina.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/tms.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/sunlogin.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/com.teamviewer.TeamViewer.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/todesk.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/uzipkdm.desktop' /home/smart/Desktop
cp -f '/usr/share/applications/usb-disk-repair.desktop' /home/smart/Desktop
ln -s /media/kdm /home/smart/Desktop/密钥
ln -s /media/cinema /home/smart/Desktop/片库
chown smart:smart /home/smart/Desktop/*
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
# 两个 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
# 根据 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
# 如果不执行修复(文件缺失或内容一致),则清理 /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
}