#!/bin/bash set -e VERSION="0.3.2" APP_NAME="studioE5" BIN_NAME="studioE5-agent" LDFLAGS="-X main.version=${VERSION}" # On Windows, build a GUI binary so no console window opens on double-click. WIN_LDFLAGS="${LDFLAGS} -H windowsgui" echo "Building ${APP_NAME} Agent v${VERSION}..." export PATH=$PATH:/usr/local/go/bin GOOS=windows GOARCH=amd64 go build -ldflags "${WIN_LDFLAGS}" -o ${BIN_NAME}.exe . echo " ${BIN_NAME}.exe (Windows amd64)" cp ${BIN_NAME}.exe "${BIN_NAME}-v${VERSION}.exe" echo " ${BIN_NAME}-v${VERSION}.exe (Windows amd64)" GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o ${BIN_NAME} . echo " ${BIN_NAME} (Linux amd64)" cp ${BIN_NAME} "${BIN_NAME}-v${VERSION}" echo " ${BIN_NAME}-v${VERSION} (Linux amd64)" # macOS build requires CGO for the systray menu; skip gracefully if unavailable. if GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go build -ldflags "${LDFLAGS}" -o ${BIN_NAME}-mac . 2>/dev/null; then echo " ${BIN_NAME}-mac (macOS amd64)" cp ${BIN_NAME}-mac "${BIN_NAME}-v${VERSION}-mac" echo " ${BIN_NAME}-v${VERSION}-mac (macOS amd64)" MAC_BUILT=1 else echo " ${BIN_NAME}-mac (macOS amd64) - skipped, CGO required for systray" MAC_BUILT=0 fi # Build Windows distribution zip (agent + Tailscale binaries) ZIP_NAME="${BIN_NAME}-v${VERSION}-windows.zip" if [ -d "tailscale-bin/windows" ]; then python3 - <