#!/bin/sh
# Тег релізу (v*) іде на GitHub лише після tools/release_check.py.
#
# Ворота в release.yml ловлять те саме, але вже ПІСЛЯ пушу тега — і тоді
# тег доводиться знімати й ставити наново. Тут відмова до того, як тег
# кудись поїхав. Обійти свідомо: git push --no-verify.
#
# Увімкнути на машині (раз):  git config core.hooksPath .githooks

zero=0000000000000000000000000000000000000000
rc=0
# Python, який справді запускається: на Windows `python` буває заглушкою
# Microsoft Store, що лише відкриває магазин і виходить з помилкою.
py=""
for c in python3 python py; do
  if command -v "$c" >/dev/null 2>&1 && "$c" -c "import sys" >/dev/null 2>&1; then
    py=$c
    break
  fi
done

while read -r local_ref local_sha remote_ref remote_sha; do
  case "$remote_ref" in
    refs/tags/v*)
      [ "$local_sha" = "$zero" ] && continue   # тег видаляють — перевіряти нічого
      tag=${remote_ref#refs/tags/}
      if [ -z "$py" ]; then
        echo "перевірка релізу $tag: не знайдено робочого Python (python3/python/py) —" \
             "поставте його в PATH або свідомо: git push --no-verify" >&2
        rc=1
        continue
      fi
      echo "перевірка релізу $tag…"
      "$py" tools/release_check.py "$tag" --ref "$local_sha" --quiet || rc=1
      ;;
  esac
done

[ $rc -ne 0 ] && echo "тег не запушено. Виправити й переставити тег, або свідомо: git push --no-verify" >&2
exit $rc
