#!/usr/bin/env sh
set -e

GREEN="\033[32m"
YELLOW="\033[33m"
RED="\033[31m"
RESET="\033[0m"

log() { printf "%b\n" "${GREEN}$1${RESET}"; }
warn() { printf "%b\n" "${YELLOW}$1${RESET}"; }
err() { printf "%b\n" "${RED}$1${RESET}" >&2; }

while read local_ref local_sha remote_ref remote_sha
do
  case "$local_ref" in
    refs/tags/v*)
      # neuer Tag? (remote_sha = 40x0)
      if [ "$remote_sha" != "0000000000000000000000000000000000000000" ]; then
        warn "🔁 Tag existiert bereits auf dem Remote – überspringe"
        continue
      fi

      TAG_NAME="${local_ref#refs/tags/}"

      log "🔖 Neuer Versionstag erkannt: ${TAG_NAME}"
      log "🧹 Alte Build-Artefakte entfernen"
      rm -rf dist build *.egg-info

      log "📦 Baue Paket"
      python -m pip install --upgrade build twine
      python -m build

      log "🚀 Upload nach PyPI"
      twine upload dist/*

      log "✅ Release ${TAG_NAME} erfolgreich veröffentlicht"
      ;;
    *)
      # kein Tag → nichts tun
      ;;
  esac
done
