safesight-edge/scripts/package-offline.sh

52 lines
1.3 KiB
Bash

#!/bin/bash
# 离线升级包构建脚本
# 编译所有组件并打包,用于内网生产设备升级
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
PACKAGE_NAME="safesight-upgrade-$(date +%Y%m%d-%H%M%S)"
BUILD_DIR="/tmp/$PACKAGE_NAME"
echo "========== 构建离线升级包 =========="
echo ""
# 编译
echo "[1/3] 编译 Edge Server..."
cd "$PROJECT_DIR"
bash scripts/build.sh -m -j4
echo "[2/3] 编译 Agent..."
cd "$PROJECT_DIR/agent"
go build -o safesight-edge-agent ./cmd/safesight-agent
cd "$PROJECT_DIR"
# 打包
echo "[3/3] 打包..."
mkdir -p "$BUILD_DIR"
cp build/safesight-edge-server "$BUILD_DIR/"
cp agent/safesight-edge-agent "$BUILD_DIR/"
cp scripts/deploy.sh "$BUILD_DIR/"
cp scripts/upgrade-from-old.sh "$BUILD_DIR/"
cp -r scripts/deploy/ "$BUILD_DIR/"
# 创建说明文件
cat > "$BUILD_DIR/README.txt" << 'EOF'
离线升级包使用说明
==================
新设备(已升级过):
sudo ./deploy.sh upgrade
旧设备(首次从 rk3588-media-server 升级):
sudo ./upgrade-from-old.sh
EOF
cd /tmp
tar -czf "$PROJECT_DIR/$PACKAGE_NAME.tar.gz" "$PACKAGE_NAME"
rm -rf "$BUILD_DIR"
echo ""
echo "✓ 打包完成: $PROJECT_DIR/$PACKAGE_NAME.tar.gz"
ls -lh "$PROJECT_DIR/$PACKAGE_NAME.tar.gz"