#!/usr/bin/env bash
set -euo pipefail
command -v jq >/dev/null 2>&1 || { echo "error: jq is required" >&2; exit 1; }
command -v curl >/dev/null 2>&1 || { echo "error: curl is required" >&2; exit 1; }
ANVIL_SERVER="${ANVIL_SERVER_URL:-https://anvil.fangorn.io}"
REPO="${ANVIL_REPO:-fangorn/anvil-cli}"
YEAR_MONTH=$(date +"%Y.%m")
if [ -z "${ANVIL_TOKEN:-}" ]; then
echo "error: ANVIL_TOKEN is required" >&2
exit 1
fi
TMP=$(mktemp)
trap 'rm -f "$TMP"' EXIT
if ! curl -sf -H "Authorization: Bearer $ANVIL_TOKEN" \
"${ANVIL_SERVER}/api/v1/${REPO}/releases" > "$TMP"; then
echo "error: release API request failed" >&2
exit 1
fi
LATEST=$(jq -r '
.releases
| [.[] | select(.tag_name | test("^[0-9]{4}\\.[0-9]{2}\\.[0-9]+$"))]
| sort_by(.tag_name | split(".") | map(tonumber))
| .[-1].tag_name // empty
' < "$TMP")
if [ -z "$LATEST" ]; then
echo "${YEAR_MONTH}.1"
exit 0
fi
LATEST_YM=$(echo "$LATEST" | cut -d. -f1-2)
LATEST_BUILD=$(echo "$LATEST" | cut -d. -f3)
if [ "$LATEST_YM" = "$YEAR_MONTH" ]; then
echo "${YEAR_MONTH}.$((LATEST_BUILD + 1))"
else
echo "${YEAR_MONTH}.1"
fi