#!/usr/bin/env bash # CLI smoke tests for forge-mesh forge and agent binaries set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" cd "$ROOT" export GOROOT="${GOROOT:-/usr/local/go}" export PATH="${GOROOT}/bin:${PATH}" CLI_CONFIG="/tmp/forge-mesh-cli-config.json" CLI_DIR="/tmp/forge-mesh-cli" mkdir -p "${CLI_DIR}" cat > "${CLI_CONFIG}" < [cli] building forge CLI + agent" make -C "${ROOT}" agent go build -o "${CLI_DIR}/forge" ./cmd/forge echo "==> [cli] forge pubkey" PUBKEY="$("${CLI_DIR}/forge" pubkey --config "${CLI_CONFIG}")" [[ -n "${PUBKEY}" ]] || { echo "empty pubkey"; exit 1; } echo " pubkey: ${PUBKEY:0:16}..." echo "==> [cli] forge build (public artifacts)" BUILD_OUT="$("${CLI_DIR}/forge" build --config "${CLI_CONFIG}" --public 2>&1)" echo "${BUILD_OUT}" | grep -q 'built linux/amd64' || { echo "${BUILD_OUT}"; exit 1; } echo "==> [cli] agent --help exits cleanly" ./bin/forge-mesh-agent -h 2>&1 | grep -q 'deck' || ./bin/forge-mesh-agent 2>&1 | grep -q 'fleet secret' echo "✓ cli tests passed"