#!/usr/bin/env bash # One-command build + start + health check for spark-mcp-go. set -euo pipefail cd "$(dirname "$0")/.." # Load .env if present if [ -f .env ]; then set -a # shellcheck source=/dev/null . ./.env set +a fi # Required tokens : "${ADMIN_TOKENS:?ADMIN_TOKENS is required}" : "${AGENT_TOKEN:?AGENT_TOKEN is required}" LISTEN_ADDR="${LISTEN_ADDR:-:8080}" PORT="${LISTEN_ADDR##*:}" PID_FILE="./data/spark-mcp.pid" echo ">> go build" go build -o ./spark-mcp-go . mkdir -p ./data/logs/tools echo ">> starting server on port ${PORT}" nohup ./spark-mcp-go > ./data/logs/spark-mcp.log 2>&1 & PID=$! echo "${PID}" > "${PID_FILE}" sleep 2 echo ">> health check" if curl -sS "http://127.0.0.1:${PORT}/healthz"; then echo echo ">> running, PID=${PID}, log=./data/logs/spark-mcp.log" else echo echo ">> health check failed; see ./data/logs/spark-mcp.log" kill "${PID}" 2>/dev/null || true rm -f "${PID_FILE}" exit 1 fi