#!/bin/sh

# Husky pre-push hook to validate tags
# Strictly enforces that all pushed tags start with 'v' (e.g., v1.0.0)

z40=0000000000000000000000000000000000000000

while read local_ref local_sha remote_ref remote_sha
do
  # Check if we are pushing a tag
  case "$local_ref" in
    refs/tags/*)
      tag_name="${local_ref#refs/tags/}"
      if ! echo "$tag_name" | grep -q "^v[0-9]"; then
        echo ""
        echo "❌ ERROR: Invalid tag name '$tag_name'"
        echo "--------------------------------------------------"
        echo "Consistency check failed: All tags MUST start with 'v'."
        echo "Example: v1.0.10"
        echo ""
        echo "Please delete the invalid tag and create a new one:"
        echo "  git tag -d $tag_name"
        echo "  git tag v$tag_name"
        echo "--------------------------------------------------"
        echo ""
        exit 1
      fi
      ;;
  esac
done

exit 0
