From c0f974fd4cb83e3e71ed07afc156b5b9332dce3c Mon Sep 17 00:00:00 2001 From: xin Date: Wed, 4 Mar 2026 15:08:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=93=E5=8C=85=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=20package.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用于构建项目并打包成 deb 文件 --- package.sh | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100755 package.sh diff --git a/package.sh b/package.sh new file mode 100755 index 0000000..62dcf65 --- /dev/null +++ b/package.sh @@ -0,0 +1,126 @@ +#!/bin/bash + +# Airborne CO2 项目打包脚本 +# 打包成 Debian 包 + +VERSION=1.0.0 +PROJECT_NAME="AirborneCO2" +PACKAGE_NAME="${PROJECT_NAME}_V${VERSION}.deb" +BUILD_DIR="build" +DEB_DIR="DebpackAirborneCO2" + +# 检查是否在正确目录 +if [ ! -f "CMakeLists.txt" ]; then + echo "错误:请在项目根目录运行此脚本" + exit 1 +fi + +echo "=========================================" +echo "Airborne CO2 打包脚本 v${VERSION}" +echo "=========================================" + +# 1. 构建项目 +echo "" +echo "[1/5] 开始构建项目..." + +# 清理旧的 build 目录并重新创建 +#rm -rf $BUILD_DIR +mkdir -p $BUILD_DIR + +cd $BUILD_DIR +cmake .. +#if [ $? -ne 0 ]; then +# echo "错误:cmake 配置失败" +# exit 1 +#fi + +# 执行 make +make -j$(nproc) +if [ $? -ne 0 ]; then + echo "错误:构建失败" + exit 1 +fi +cd .. + +# 检查构建产物 +if [ ! -f "${BUILD_DIR}/Project_Grixis" ]; then + echo "错误:构建产物不存在" + exit 1 +fi +echo "构建完成" + +# 2. 创建打包目录 +echo "" +echo "[2/5] 创建打包目录..." +rm -rf $DEB_DIR +mkdir -p $DEB_DIR + +# 3. 复制可执行文件和脚本文件 +echo "" +echo "[3/5] 复制文件..." +mkdir -p ${DEB_DIR}/home/pi/bin +cp ${BUILD_DIR}/Project_Grixis ${DEB_DIR}/home/pi/bin/ +chmod +x ${DEB_DIR}/home/pi/bin/Project_Grixis + +# 复制脚本文件到 /home/pi/bin/ +for script in rasp.sh raspusb.sh mountdjirndis.sh mountdjirndism400.sh mountrndis.sh usbbulk.sh choosescript.sh; do + if [ -f "$script" ]; then + cp "$script" ${DEB_DIR}/home/pi/bin/ + chmod +x ${DEB_DIR}/home/pi/bin/"$script" + fi +done + +# 5. 创建 DEBIAN 目录和配置文件 +echo "" +echo "[4/5] 创建 DEBIAN 配置..." +mkdir -p ${DEB_DIR}/DEBIAN + +# 创建 control 文件 +cat > ${DEB_DIR}/DEBIAN/control < ${DEB_DIR}/DEBIAN/postinst < /home/data/version +chmod +x /home/pi/bin/Project_Grixis +exit 0 +EOF + +# 创建 prerm 脚本(删除前执行) +cat > ${DEB_DIR}/DEBIAN/prerm <