name: Bump Homebrew Tap

on:
  workflow_call:
    inputs:
      version:
        description: 'Version to bump (e.g. 0.10.0 or v0.10.0)'
        type: string
        required: true
  workflow_dispatch:
    inputs:
      version:
        description: 'Version to bump (e.g. 0.10.0 or v0.10.0)'
        required: true

permissions:
  contents: read

jobs:
  bump:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - name: Determine version
        id: ver
        env:
          INPUT_VERSION: ${{ inputs.version }}
        run: |
          V="${INPUT_VERSION#v}"
          echo "version=$V" >> "$GITHUB_OUTPUT"

      - name: Fetch sha256 checksums from release assets
        id: shas
        env:
          V: ${{ steps.ver.outputs.version }}
        run: |
          set -euo pipefail
          base="https://github.com/razvandimescu/numa/releases/download/v${V}"
          for t in macos-aarch64 macos-x86_64 linux-aarch64 linux-x86_64; do
            sha=$(curl -fsSL "${base}/numa-${t}.tar.gz.sha256" | awk '{print $1}')
            if [ -z "$sha" ]; then
              echo "ERROR: failed to fetch sha256 for $t" >&2
              exit 1
            fi
            key=$(echo "$t" | tr '[:lower:]-' '[:upper:]_')
            echo "SHA_${key}=${sha}" >> "$GITHUB_ENV"
          done

      - name: Clone homebrew-tap
        env:
          HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }}
        run: |
          git clone "https://x-access-token:${HOMEBREW_TAP_GITHUB_TOKEN}@github.com/razvandimescu/homebrew-tap.git" tap

      - name: Update formula
        env:
          VERSION: ${{ steps.ver.outputs.version }}
        run: |
          python3 scripts/update-homebrew-formula.py tap/numa.rb
          echo "--- updated numa.rb ---"
          cat tap/numa.rb

      - name: Commit and push
        working-directory: tap
        env:
          V: ${{ steps.ver.outputs.version }}
        run: |
          if git diff --quiet; then
            echo "numa.rb already at v${V}, nothing to commit"
            exit 0
          fi
          git config user.name "github-actions[bot]"
          git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git add numa.rb
          git commit -m "chore: bump numa to v${V}"
          git push origin main
