#!/usr/bin/env bash
# setup.sh — First-time build setup for archivmail
# Run once on a machine with internet access.
# After this, the project builds and tests without internet.
set -e

echo "==> Checking Go version"
go version
GO_MINOR=$(go version | grep -oP 'go1\.\K[0-9]+')
if [ "$GO_MINOR" -lt 22 ]; then
  echo "ERROR: Go 1.22+ required"
  exit 1
fi

echo ""
echo "==> Downloading dependencies (go mod tidy)"
go mod tidy

echo ""
echo "==> Verifying modules"
go mod verify

echo ""
echo "==> Building (Manticore backend)"
make build

echo ""
echo "==> Binary sizes"
ls -lh bin/

echo ""
echo "==> Running tests"
make test

echo ""
echo "========================================"
echo "  Build successful!"
echo ""
echo "  To start the daemon:"
echo "    sudo make install"
echo "    sudo systemctl start archivmail"
echo ""
echo "  Or run directly:"
echo "    ./bin/archivmail --config config/config.yml"
echo ""
echo "  Full-text search requires Manticore Search:"
echo "    See: https://manticoresearch.com/install/"
echo "========================================"
