Skip to content

Commit 77603ea

Browse files
reid-spencerclaude
andcommitted
Add riddl-gen-cli formula and auto-update workflow
- Formula/riddl-gen-cli.rb: multi-platform Homebrew formula (macOS ARM64 native, Linux x86_64 native, JVM fallback) - update-riddl-gen-formula.yml: auto-updates formula on repository_dispatch from riddl-gen CI - README.md: add riddl-gen-cli to available formulae Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7c54b94 commit 77603ea

3 files changed

Lines changed: 212 additions & 0 deletions

File tree

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
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

Formula/riddl-gen-cli.rb

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Homebrew formula for riddl-gen-cli - document generators for RIDDL models
2+
# To install: brew install ossuminc/tap/riddl-gen-cli
3+
# Or add the tap first: brew tap ossuminc/tap && brew install riddl-gen-cli
4+
# Auto-generated by update-riddl-gen-formula.yml - do not edit manually
5+
6+
class RiddlGenCli < Formula
7+
desc "Document generators for RIDDL (Reactive Interface to Domain Definition Language) models"
8+
homepage "https://github.com/ossuminc/riddl-gen"
9+
version "0.3.5"
10+
license "Apache-2.0"
11+
12+
if OS.mac? && Hardware::CPU.arm?
13+
url "https://github.com/ossuminc/riddl-gen/releases/download/#{version}/riddl-gen-cli-macos-aarch64.tar.gz"
14+
sha256 "0000000000000000000000000000000000000000000000000000000000000000"
15+
elsif OS.linux? && Hardware::CPU.intel?
16+
url "https://github.com/ossuminc/riddl-gen/releases/download/#{version}/riddl-gen-cli-linux-amd64.tar.gz"
17+
sha256 "0000000000000000000000000000000000000000000000000000000000000000"
18+
else
19+
url "https://github.com/ossuminc/riddl-gen/releases/download/#{version}/riddl-gen-cli-jvm.tgz"
20+
sha256 "0000000000000000000000000000000000000000000000000000000000000000"
21+
depends_on "openjdk@25"
22+
end
23+
24+
def install
25+
if (OS.mac? && Hardware::CPU.arm?) || (OS.linux? && Hardware::CPU.intel?)
26+
# Native binary from tar.gz
27+
bin.install "riddl-gen-cli"
28+
else
29+
# JVM version - needs wrapper script
30+
rm "bin/riddl-gen-cli.bat" if File.exist?("bin/riddl-gen-cli.bat")
31+
libexec.install "lib"
32+
libexec.install "bin"
33+
34+
(bin/"riddl-gen-cli").write <<~EOS
35+
#!/bin/bash
36+
export JAVA_HOME="#{Formula["openjdk@25"].opt_prefix}"
37+
exec "#{libexec}/bin/riddl-gen-cli" "$@"
38+
EOS
39+
end
40+
end
41+
42+
def caveats
43+
if (OS.mac? && Hardware::CPU.arm?) || (OS.linux? && Hardware::CPU.intel?)
44+
<<~EOS
45+
riddl-gen-cli is installed as a native binary. No JDK required.
46+
47+
To verify the installation:
48+
riddl-gen-cli --help
49+
50+
For usage:
51+
riddl-gen-cli generate --help
52+
EOS
53+
else
54+
<<~EOS
55+
riddl-gen-cli requires Java 25. This formula uses openjdk@25.
56+
57+
To verify the installation:
58+
riddl-gen-cli --help
59+
60+
For usage:
61+
riddl-gen-cli generate --help
62+
EOS
63+
end
64+
end
65+
66+
test do
67+
assert_match "riddl-gen-cli", shell_output("#{bin}/riddl-gen-cli --help")
68+
end
69+
end

README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,41 @@ riddlc validate myfile.riddl
4747
- **Other platforms**: Java 21 (automatically installed via
4848
`openjdk@21` dependency)
4949

50+
### riddl-gen-cli
51+
52+
Document generators for RIDDL models. Generates AsciiDoc,
53+
Hugo, OpenAPI, and Smithy specifications from RIDDL models.
54+
55+
```bash
56+
brew install ossuminc/tap/riddl-gen-cli
57+
```
58+
59+
Or after tapping:
60+
61+
```bash
62+
brew install riddl-gen-cli
63+
```
64+
65+
#### Usage
66+
67+
```bash
68+
# Get help
69+
riddl-gen-cli --help
70+
71+
# Generate documentation from a RIDDL model
72+
riddl-gen-cli generate --help
73+
74+
# Check job status
75+
riddl-gen-cli status --job-id <id>
76+
```
77+
78+
#### Requirements
79+
80+
- **macOS Apple Silicon** or **Linux x86_64**: Native binary, no
81+
JDK required
82+
- **Other platforms**: Java 25 (automatically installed via
83+
`openjdk@25` dependency)
84+
5085
## More Information
5186

5287
- [RIDDL Documentation](https://ossum.tech/riddl/)

0 commit comments

Comments
 (0)