package.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/bash
  2. # 打包编译产出脚本
  3. # 将 install 目录打包为 tar.gz 便于部署
  4. set -e
  5. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  6. REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
  7. cd "$REPO_ROOT"
  8. # 默认输出目录和包名
  9. OUTPUT_DIR="${OUTPUT_DIR:-$REPO_ROOT}"
  10. TIMESTAMP=$(date +%Y%m%d_%H%M%S)
  11. PACKAGE_NAME="${PACKAGE_NAME:-ghost_install_$TIMESTAMP}.tar.gz"
  12. echo "=========================================="
  13. echo " 打包编译产出"
  14. echo "=========================================="
  15. # 检查 install 目录是否存在
  16. if [ ! -d "install" ]; then
  17. echo "错误: 未找到 install 目录,请先执行编译"
  18. exit 1
  19. fi
  20. # 检查 install 目录是否为空
  21. if [ ! -f "install/setup.sh" ] && [ ! -f "install/local_setup.sh" ]; then
  22. echo "错误: install 目录为空或未完成编译"
  23. exit 1
  24. fi
  25. # 创建输出目录
  26. mkdir -p "$OUTPUT_DIR"
  27. PACKAGE_PATH="$OUTPUT_DIR/$PACKAGE_NAME"
  28. echo ">>> 打包中: install/ -> $PACKAGE_PATH"
  29. # 打包 install 目录,排除临时文件
  30. tar -czvf "$PACKAGE_PATH" \
  31. --exclude='*.pyc' \
  32. --exclude='__pycache__' \
  33. --exclude='*.log' \
  34. -C "$REPO_ROOT" \
  35. install
  36. echo ""
  37. echo "完成: 打包成功"
  38. echo "输出文件: $PACKAGE_PATH"
  39. echo "文件大小: $(du -h "$PACKAGE_PATH" | cut -f1)"
  40. echo ""
  41. echo "解压部署: tar -xzvf $PACKAGE_NAME -C /目标路径/"