|
| 1 | +name: Update riddl-gen-cli Homebrew Formula |
| 2 | + |
| 3 | +on: |
| 4 | + repository_dispatch: |
| 5 | + types: [update-riddl-gen-formula] |
| 6 | + |
| 7 | +jobs: |
| 8 | + update-formula: |
| 9 | + runs-on: ubuntu-latest |
| 10 | + steps: |
| 11 | + - name: Checkout homebrew-tap |
| 12 | + uses: actions/checkout@v4 |
| 13 | + |
| 14 | + - name: Extract payload |
| 15 | + id: payload |
| 16 | + run: | |
| 17 | + echo "version=${{ github.event.client_payload.version }}" >> "$GITHUB_OUTPUT" |
| 18 | + echo "sha_macos_arm64=${{ github.event.client_payload.sha_macos_arm64 }}" >> "$GITHUB_OUTPUT" |
| 19 | + echo "sha_linux_amd64=${{ github.event.client_payload.sha_linux_amd64 }}" >> "$GITHUB_OUTPUT" |
| 20 | + echo "sha_jvm=${{ github.event.client_payload.sha_jvm }}" >> "$GITHUB_OUTPUT" |
| 21 | +
|
| 22 | + - name: Generate formula |
| 23 | + env: |
| 24 | + TAG: ${{ steps.payload.outputs.version }} |
| 25 | + SHA_MACOS_ARM64: ${{ steps.payload.outputs.sha_macos_arm64 }} |
| 26 | + SHA_LINUX_AMD64: ${{ steps.payload.outputs.sha_linux_amd64 }} |
| 27 | + SHA_JVM: ${{ steps.payload.outputs.sha_jvm }} |
| 28 | + run: | |
| 29 | + envsubst '$TAG $SHA_MACOS_ARM64 $SHA_LINUX_AMD64 $SHA_JVM' > Formula/riddl-gen-cli.rb << 'FORMULA' |
| 30 | + # Homebrew formula for riddl-gen-cli - document generators for RIDDL models |
| 31 | + # To install: brew install ossuminc/tap/riddl-gen-cli |
| 32 | + # Or add the tap first: brew tap ossuminc/tap && brew install riddl-gen-cli |
| 33 | + # Auto-generated by update-riddl-gen-formula.yml - do not edit manually |
| 34 | +
|
| 35 | + class RiddlGenCli < Formula |
| 36 | + desc "Document generators for RIDDL (Reactive Interface to Domain Definition Language) models" |
| 37 | + homepage "https://github.com/ossuminc/riddl-gen" |
| 38 | + version "${TAG}" |
| 39 | + license "Apache-2.0" |
| 40 | +
|
| 41 | + if OS.mac? && Hardware::CPU.arm? |
| 42 | + url "https://github.com/ossuminc/riddl-gen/releases/download/#{version}/riddl-gen-cli-macos-aarch64.tar.gz" |
| 43 | + sha256 "${SHA_MACOS_ARM64}" |
| 44 | + elsif OS.linux? && Hardware::CPU.intel? |
| 45 | + url "https://github.com/ossuminc/riddl-gen/releases/download/#{version}/riddl-gen-cli-linux-amd64.tar.gz" |
| 46 | + sha256 "${SHA_LINUX_AMD64}" |
| 47 | + else |
| 48 | + url "https://github.com/ossuminc/riddl-gen/releases/download/#{version}/riddl-gen-cli-jvm.tgz" |
| 49 | + sha256 "${SHA_JVM}" |
| 50 | + depends_on "openjdk@25" |
| 51 | + end |
| 52 | +
|
| 53 | + def install |
| 54 | + if (OS.mac? && Hardware::CPU.arm?) || (OS.linux? && Hardware::CPU.intel?) |
| 55 | + # Native binary from tar.gz |
| 56 | + bin.install "riddl-gen-cli" |
| 57 | + else |
| 58 | + # JVM version - needs wrapper script |
| 59 | + rm "bin/riddl-gen-cli.bat" if File.exist?("bin/riddl-gen-cli.bat") |
| 60 | + libexec.install "lib" |
| 61 | + libexec.install "bin" |
| 62 | +
|
| 63 | + (bin/"riddl-gen-cli").write <<~EOS |
| 64 | + #!/bin/bash |
| 65 | + export JAVA_HOME="#{Formula["openjdk@25"].opt_prefix}" |
| 66 | + exec "#{libexec}/bin/riddl-gen-cli" "$@" |
| 67 | + EOS |
| 68 | + end |
| 69 | + end |
| 70 | +
|
| 71 | + def caveats |
| 72 | + if (OS.mac? && Hardware::CPU.arm?) || (OS.linux? && Hardware::CPU.intel?) |
| 73 | + <<~EOS |
| 74 | + riddl-gen-cli is installed as a native binary. No JDK required. |
| 75 | +
|
| 76 | + To verify the installation: |
| 77 | + riddl-gen-cli --help |
| 78 | +
|
| 79 | + For usage: |
| 80 | + riddl-gen-cli generate --help |
| 81 | + EOS |
| 82 | + else |
| 83 | + <<~EOS |
| 84 | + riddl-gen-cli requires Java 25. This formula uses openjdk@25. |
| 85 | +
|
| 86 | + To verify the installation: |
| 87 | + riddl-gen-cli --help |
| 88 | +
|
| 89 | + For usage: |
| 90 | + riddl-gen-cli generate --help |
| 91 | + EOS |
| 92 | + end |
| 93 | + end |
| 94 | +
|
| 95 | + test do |
| 96 | + assert_match "riddl-gen-cli", shell_output("#{bin}/riddl-gen-cli --help") |
| 97 | + end |
| 98 | + end |
| 99 | + FORMULA |
| 100 | +
|
| 101 | + - name: Commit and push formula |
| 102 | + run: | |
| 103 | + git config user.name "github-actions[bot]" |
| 104 | + git config user.email "github-actions[bot]@users.noreply.github.com" |
| 105 | + TAG="${{ steps.payload.outputs.version }}" |
| 106 | + git add Formula/riddl-gen-cli.rb |
| 107 | + git diff --cached --quiet || git commit -m "Update riddl-gen-cli to ${TAG} with multi-platform native binaries" |
| 108 | + git push |
0 commit comments