generated from zj/archlinux-pkg
142 lines
6.6 KiB
Plaintext
142 lines
6.6 KiB
Plaintext
# 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
|
||
|
||
|
||
}
|