#!/usr/bin/env bash
set -euo pipefail

case "${1:-}" in
  major|minor|patch) bump="$1" ;;
  *)
    echo "usage: scripts/release {major|minor|patch}" >&2
    exit 2
    ;;
esac

repo_root="$(git rev-parse --show-toplevel)"
cd "$repo_root"

if [[ "$(git branch --show-current)" != "main" ]]; then
  echo "release must run on main" >&2
  exit 1
fi

if ! git diff --quiet || ! git diff --cached --quiet; then
  echo "release requires no tracked changes" >&2
  exit 1
fi

git fetch origin main
if [[ "$(git rev-parse HEAD)" != "$(git rev-parse origin/main)" ]]; then
  echo "main must match origin/main" >&2
  exit 1
fi

uv version --bump "$bump"
version="$(uv version --short)"

git add pyproject.toml uv.lock
git commit -m "chore: release $version"
git push origin main

release_url="$(gh release create "v$version" --target main --title "v$version" --generate-notes)"
echo "Release: $release_url"
echo "Workflow: https://github.com/kalcifield/eea-climate-data-mcp/actions/workflows/release.yml"
