fangorn/ex_git_objectstore
public
ref:main
#!/usr/bin/env bash
set -euo pipefail
# Compute next CalVer version: YYYY.MM.BUILD
# Uses git tags to find the latest release, increments build number.
# Resets build to 1 on new month or if no prior release exists.
YEAR_MONTH=$(date +"%Y.%-m")
# Get latest version tag (CalVer format: YYYY.M.BUILD)
LATEST=$(git tag -l '[0-9]*.[0-9]*.[0-9]*' --sort=-v:refname | head -1 || true)
if [ -z "$LATEST" ]; then
echo "${YEAR_MONTH}.1"
exit 0
fi
# Parse existing tag
LATEST_YM=$(echo "$LATEST" | sed 's/\.[^.]*$//')
LATEST_BUILD=$(echo "$LATEST" | grep -o '[^.]*$')
if [ "$LATEST_YM" = "$YEAR_MONTH" ]; then
echo "${YEAR_MONTH}.$((LATEST_BUILD + 1))"
else
echo "${YEAR_MONTH}.1"
fi