#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

# 读取 stdin 中的所有内容
while read local_ref local_sha remote_ref remote_sha; do
  # 检查是否是 tag 推送
  case "$remote_ref" in
    refs/tags/*)
      # 提取 tag 名称
      TAG="${remote_ref#refs/tags/}"
      
      # 只校验以 "v" 开头的 tag
      if [[ $TAG == v* ]]; then
        echo "🏷️  检查推送的 tag: $TAG"
        node .husky/scripts/verifyTagVersion.js "$TAG"
      else
        echo "ℹ️  非版本 tag ($TAG)，跳过校验"
      fi
      ;;
    *)
  esac
done

# 如果 stdin 为空（没有推送任何引用），也检查最新 tag
if [ -t 0 ]; then
  LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null)
  if [ $? -eq 0 ]; then
    # 只校验以 "v" 开头的 tag
    if [[ $LATEST_TAG == v* ]]; then
      echo "🏷️  检查最新的 tag: $LATEST_TAG"
      node .husky/scripts/verifyTagVersion.js "$LATEST_TAG"
    else
      echo "ℹ️  最新 tag ($LATEST_TAG) 不是版本 tag，跳过校验"
    fi
  else
    echo "⚠️  没有找到任何 tag，跳过版本校验"
  fi
fi