diff --git a/scripts/package.sh b/scripts/package.sh new file mode 100644 index 0000000..e63d529 --- /dev/null +++ b/scripts/package.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# 管理端离线部署包构建脚本 +# 交叉编译 safesightd,打包配置和部署脚本 +set -e + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +PACKAGE_NAME="safesight-control-$(date +%Y%m%d-%H%M%S)" +BUILD_DIR="/tmp/$PACKAGE_NAME" + +echo "========== 构建管理端离线部署包 ==========" +echo "" + +# 编译 +echo "[1/2] 交叉编译..." +cd "$PROJECT_DIR" +mkdir -p "$BUILD_DIR" +CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o "$BUILD_DIR/safesightd-linux-arm64" ./cmd/safesightd/ 2>/dev/null && echo " ✓ ARM64" || echo " ✗ ARM64 failed" +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o "$BUILD_DIR/safesightd-linux-amd64" ./cmd/safesightd/ 2>/dev/null && echo " ✓ AMD64" || echo " ✗ AMD64 failed" + +# 打包 +echo "[2/2] 打包..." +cp scripts/deploy/safesightd "$BUILD_DIR/" +cp scripts/deploy/safesightd.service "$BUILD_DIR/" +cp safesightd.json "$BUILD_DIR/safesightd.json.example" 2>/dev/null || true + +cat > "$BUILD_DIR/README.txt" << 'EOF' +SafeSight Control 离线部署包 +============================= + +部署: + sudo ./safesightd install /opt/safesightd + sudo vi /opt/safesightd/config/safesightd.json # 修改 token + sudo systemctl start safesightd + +打开 http://:18080 +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"