107 lines
3.0 KiB
Bash
107 lines
3.0 KiB
Bash
|
|
#!/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 "=========================================="
|