#!/bin/bash # 打包编译产出脚本 # 将 install 目录打包为 tar.gz 便于部署 set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" cd "$REPO_ROOT" # 默认输出目录和包名 OUTPUT_DIR="${OUTPUT_DIR:-$REPO_ROOT}" TIMESTAMP=$(date +%Y%m%d_%H%M%S) PACKAGE_NAME="${PACKAGE_NAME:-ghost_install_$TIMESTAMP}.tar.gz" echo "==========================================" echo " 打包编译产出" echo "==========================================" # 检查 install 目录是否存在 if [ ! -d "install" ]; then echo "错误: 未找到 install 目录,请先执行编译" exit 1 fi # 检查 install 目录是否为空 if [ ! -f "install/setup.sh" ] && [ ! -f "install/local_setup.sh" ]; then echo "错误: install 目录为空或未完成编译" exit 1 fi # 创建输出目录 mkdir -p "$OUTPUT_DIR" PACKAGE_PATH="$OUTPUT_DIR/$PACKAGE_NAME" echo ">>> 打包中: install/ -> $PACKAGE_PATH" # 打包 install 目录,排除临时文件 tar -czvf "$PACKAGE_PATH" \ --exclude='*.pyc' \ --exclude='__pycache__' \ --exclude='*.log' \ -C "$REPO_ROOT" \ install echo "" echo "完成: 打包成功" echo "输出文件: $PACKAGE_PATH" echo "文件大小: $(du -h "$PACKAGE_PATH" | cut -f1)" echo "" echo "解压部署: tar -xzvf $PACKAGE_NAME -C /目标路径/"