#!/bin/bash set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" # 构建前端(可选,需配置 WEB_DIR 环境变量指向前端项目目录) WEB_DIR="${WEB_DIR:-}" HTML_DIR="$PROJECT_DIR/internal/web/html" if [ -n "$WEB_DIR" ] && [ -d "$WEB_DIR" ]; then echo "Building frontend..." cd "$WEB_DIR" && npm run build rm -rf "$HTML_DIR" cp -r dist "$HTML_DIR" echo "Frontend built and copied." fi cd "$PROJECT_DIR" BINARY_NAME="opencode-monitor" VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev") mkdir -p dist echo "Building for Linux (amd64)..." GOOS=linux GOARCH=amd64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-linux-amd64 ./cmd/monitor echo "Building for Linux (arm64)..." GOOS=linux GOARCH=arm64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-linux-arm64 ./cmd/monitor echo "Building for Windows (amd64)..." GOOS=windows GOARCH=amd64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-windows-amd64.exe ./cmd/monitor echo "Building for Windows (arm64)..." GOOS=windows GOARCH=arm64 go build -ldflags "-X main.Version=${VERSION}" -o dist/${BINARY_NAME}-windows-arm64.exe ./cmd/monitor echo "" echo "Build complete! Binaries in dist/" ls -la dist/