name: Release WinUtil

on:
  workflow_dispatch: # Manual trigger added

jobs:
  build-runspace:
    runs-on: windows-latest
    outputs:
      version: ${{ steps.extract_version.outputs.version }}
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Extract Version from winutil.ps1
        id: extract_version
        run: |
          $version = ''
          Get-Content ./winutil.ps1 -TotalCount 30 | ForEach-Object {
            if ($_ -match 'Version\s*:\s*(\d{2}\.\d{2}\.\d{2})') {
              $version = $matches[1]
              echo "version=$version" >> $GITHUB_OUTPUT
              break
            }
          }
          if (-not $version) {
            Write-Error "Version not found in winutil.ps1"
            exit 1
          }
        shell: pwsh

      - name: Create and Upload Release
        id: create_release
        uses: softprops/action-gh-release@v2
        with:
          tag_name: ${{ steps.extract_version.outputs.version }}
          name: Release ${{ steps.extract_version.outputs.version }}
          body: "![GitHub Downloads (specific asset, specific tag)](https://img.shields.io/github/downloads/ChrisTitusTech/winutil/${{ steps.extract_version.outputs.version }}/winutil.ps1)"
          append_body: true
          files: ./winutil.ps1
          prerelease: false
          make_latest: "true"
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
