GrabBag/GrabBagPrj/pkg_belttearingserver.sh

107 lines
3.0 KiB
Bash
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.

#!/bin/bash
# BeltTearingServer 版本配置
PKG_NAME="BeltTearingServer"
PKG_ARCH="arm64"
# 默认版本信息
PKG_VERSION="1.0.0"
BUILD_NUMBER="1"
PKG_PATH=$HOME/BeltTearingServerPkg
CODE_PATH=../
RELEASE_PATH=../Publish
echo "=========================================="
echo "开始打包 BeltTearingServer 应用程序 v${PKG_VERSION}..."
echo "=========================================="
if [ -d "${PKG_PATH}" ];then
echo "清理旧的打包目录..."
rm -irf ${PKG_PATH}
fi
echo "创建打包目录结构..."
mkdir -p ${PKG_PATH}/DEBIAN
mkdir -p ${PKG_PATH}/opt/onvm
# 复制 BeltTearingServer/onvm 目录下的所有内容到 /opt
BELT_TEARING_SERVER_PATH=${CODE_PATH}/GrabBagPrj/BeltTearingServer/onvm
echo "复制 BeltTearingServer 内容到 /opt/..."
cp -r ${BELT_TEARING_SERVER_PATH}/* ${PKG_PATH}/opt/onvm
echo "生成 control 文件..."
#control
CONTROL_PATH=${PKG_PATH}/DEBIAN/control
echo "Package: ${PKG_NAME}" > ${CONTROL_PATH}
echo "Version: ${PKG_VERSION}" >> ${CONTROL_PATH}
echo "Section: belttearingserver" >> ${CONTROL_PATH}
echo "Architecture: ${PKG_ARCH}" >> ${CONTROL_PATH}
echo "Priority: optional" >> ${CONTROL_PATH}
echo "Maintainer: BeltTearingServer Team <support@belttearing.com>" >> ${CONTROL_PATH}
echo "Description: BeltTearingServer application" >> ${CONTROL_PATH}
echo "生成安装后脚本..."
#postinst install exec script
POSTINST_PATH=${PKG_PATH}/DEBIAN/postinst
cat > ${POSTINST_PATH} << 'EOF'
#!/bin/bash
echo "配置 BeltTearingServer 应用程序..."
# 安装并启用 onvm.service
if [ -f /opt/onvm/onvm.service ]; then
echo "安装 onvm.service..."
cp /opt/onvm/onvm.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable onvm.service
systemctl start onvm.service
echo "onvm.service 已安装并设置为开机自启"
else
echo "错误: 未找到 onvm.service 文件"
fi
EOF
chmod +x ${POSTINST_PATH}
echo "生成卸载脚本..."
#postrm uninstall exec script
POSTRM_PATH=${PKG_PATH}/DEBIAN/postrm
cat > ${POSTRM_PATH} << 'EOF'
#!/bin/bash
echo "卸载 BeltTearingServer 应用程序..."
# 停止并禁用 onvm.service
systemctl stop onvm.service 2>/dev/null || true
systemctl disable onvm.service 2>/dev/null || true
rm -f /etc/systemd/system/onvm.service
# 重新加载systemd
systemctl daemon-reload
echo "BeltTearingServer 应用程序卸载完成!"
EOF
chmod +x ${POSTRM_PATH}
echo "设置文件权限..."
# 设置opt目录权限不包括DEBIAN
chmod -R 755 ${PKG_PATH}/opt
# 确保publish目录存在
mkdir -p ${RELEASE_PATH}
# 生成带时间戳和构建号的包文件名
TIMESTAMP=$(date +%Y%m%d%H%M%S)
DEB_FILENAME="${RELEASE_PATH}/${PKG_NAME}_${PKG_VERSION}_${BUILD_NUMBER}_${PKG_ARCH}_${TIMESTAMP}.deb"
# 开始构建 DEB 包
fakeroot dpkg -b ${PKG_PATH} ${DEB_FILENAME}
echo "=========================================="
echo "打包完成!"
echo "生成的包文件: ${DEB_FILENAME}"
echo "文件大小: $(ls -lh ${DEB_FILENAME} | awk '{print $5}')"
echo "=========================================="