mirror of
https://github.com/lukaszraczylo/homebrew-taps.git
synced 2026-10-30 02:20:45 +00:00
Compare commits
262
Commits
302a9156d4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f134dab86c | ||
|
|
a49172b4ff | ||
|
|
02e2762f01 | ||
|
|
d6a453bd5c | ||
|
|
901cd6a430 | ||
|
|
3c741d4189 | ||
|
|
fc2ea25856 | ||
|
|
c13174153e | ||
|
|
c2431e3c76 | ||
|
|
2770238230 | ||
|
|
2adc2fbe22 | ||
|
|
2ece8c4cb5 | ||
|
|
80d04358c3 | ||
|
|
0ed97b9c8d | ||
|
|
a08fcd76ae | ||
|
|
18cbad0a00 | ||
|
|
e2f91478e1 | ||
|
|
594071b70c | ||
|
|
09dccc1f51 | ||
|
|
aed7ebb0ce | ||
|
|
b70bf5df82 | ||
|
|
a2d3c7dc3b | ||
|
|
46f701db43 | ||
|
|
95577f20d2 | ||
|
|
2ea9b151bb | ||
|
|
93e9f2d143 | ||
|
|
85b5907917 | ||
|
|
437350a2a1 | ||
|
|
3983274fac | ||
|
|
76590cbc32 | ||
|
|
a7c65b2f1d | ||
|
|
1cf1fde6b4 | ||
|
|
e3b2b39342 | ||
|
|
92f48a0163 | ||
|
|
99fb4ff0f2 | ||
|
|
44c6352325 | ||
|
|
0f82d50e24 | ||
|
|
67b20bb0f8 | ||
|
|
97caf64feb | ||
|
|
b7bfde3794 | ||
|
|
4c52f40ccb | ||
|
|
3c4487daf4 | ||
|
|
ab3c7aab6f | ||
|
|
cbbd19f879 | ||
|
|
e4093c3602 | ||
|
|
ccf729d270 | ||
|
|
8313e47964 | ||
|
|
19d81404a0 | ||
|
|
98e6099766 | ||
|
|
11f3b30c6a | ||
|
|
562da15b9a | ||
|
|
ed03c8ed87 | ||
|
|
fba66132e6 | ||
|
|
11ec259c6c | ||
|
|
ce426ed7ed | ||
|
|
a993a4b444 | ||
|
|
a59b97ece1 | ||
|
|
eeb81d5b72 | ||
|
|
72ed39be2e | ||
|
|
09feb4ebda | ||
|
|
76befcdeab | ||
|
|
b37a4a9172 | ||
|
|
d52d43fbfb | ||
|
|
8f33dd98a2 | ||
|
|
6455c68165 | ||
|
|
878ae29a5c | ||
|
|
1ff3e5399e | ||
|
|
5e774af840 | ||
|
|
11e9447f77 | ||
|
|
2707ba6f84 | ||
|
|
2899d5d959 | ||
|
|
fb343da3ff | ||
|
|
af37237e02 | ||
|
|
16e3e3e175 | ||
|
|
22bcec145f | ||
|
|
7609cd5c67 | ||
|
|
f5a2c1add9 | ||
|
|
8b8e9ff9a6 | ||
|
|
931a39c856 | ||
|
|
c35c6a39a9 | ||
|
|
c8eb739557 | ||
|
|
c77cc2bc55 | ||
|
|
fcd1361265 | ||
|
|
43fa2806e4 | ||
|
|
79c52b286b | ||
|
|
30790bd16d | ||
|
|
f77468abb3 | ||
|
|
4533b3548c | ||
|
|
316ce9e02b | ||
|
|
2050e14374 | ||
|
|
8547438879 | ||
|
|
e920105e9a | ||
|
|
fb0f448003 | ||
|
|
ea8f6c18d5 | ||
|
|
ae5a8e23ac | ||
|
|
4a62b727fa | ||
|
|
51477233a4 | ||
|
|
c517a95a8b | ||
|
|
c9362cd118 | ||
|
|
eef08cb82a | ||
|
|
3c2f12aab1 | ||
|
|
944f7541f1 | ||
|
|
76fbba284d | ||
|
|
2cb6e31144 | ||
|
|
63244fb6ba | ||
|
|
8773216f84 | ||
|
|
a8ee268efe | ||
|
|
790f245026 | ||
|
|
67ac4ce667 | ||
|
|
3352f31251 | ||
|
|
1a341ccfed | ||
|
|
df80dc1792 | ||
|
|
899473b528 | ||
|
|
a1d32b962d | ||
|
|
0c7bccd6cc | ||
|
|
41c31ba908 | ||
|
|
6b3db2d3dc | ||
|
|
604ccefef2 | ||
|
|
25a8bf57f4 | ||
|
|
11c3e97164 | ||
|
|
f937ed7587 | ||
|
|
823e58d472 | ||
|
|
671afa5e7e | ||
|
|
fb8c485aa8 | ||
|
|
3e299a8a2a | ||
|
|
931016a0cd | ||
|
|
6b4670f65f | ||
|
|
3b3020850f | ||
|
|
cf5c422ef8 | ||
|
|
c8aafaf12a | ||
|
|
2335863c4c | ||
|
|
1800c8dc5c | ||
|
|
614fd18bc3 | ||
|
|
46107a9f88 | ||
|
|
f24e100226 | ||
|
|
c7411a7cec | ||
|
|
4e0c5d5934 | ||
|
|
b1df0ab270 | ||
|
|
1b62a018ec | ||
|
|
a50713a835 | ||
|
|
39230ab278 | ||
|
|
9f992f13de | ||
|
|
ef31542d50 | ||
|
|
2f4a7228f1 | ||
|
|
c893380eb6 | ||
|
|
2100734244 | ||
|
|
0dd865bb27 | ||
|
|
3f2b74b7ec | ||
|
|
0c9a5806df | ||
|
|
2cbf3dd8c9 | ||
|
|
d93e25eae1 | ||
|
|
a869b562be | ||
|
|
4131df66b6 | ||
|
|
6129ffa699 | ||
|
|
38f128fd92 | ||
|
|
1c5e5012be | ||
|
|
d5d1507825 | ||
|
|
db3b2252f6 | ||
|
|
0bb6230fce | ||
|
|
2c0d207321 | ||
|
|
186dd51a49 | ||
|
|
46b6c2f9ba | ||
|
|
723ca22368 | ||
|
|
248062555a | ||
|
|
ef84da76f7 | ||
|
|
4a548c891f | ||
|
|
1767d305fa | ||
|
|
138f954a8a | ||
|
|
25e7852e5e | ||
|
|
04e7598da0 | ||
|
|
ca9fca08ad | ||
|
|
78a56a27c5 | ||
|
|
c319e03339 | ||
|
|
e13346d27b | ||
|
|
be0e0123c3 | ||
|
|
8c81b8d850 | ||
|
|
313125c572 | ||
|
|
31e3a9d918 | ||
|
|
cfa9843b23 | ||
|
|
4ac559be3e | ||
|
|
e5a3a5b3c4 | ||
|
|
5974b1a98b | ||
|
|
691551c966 | ||
|
|
3a82a7b42a | ||
|
|
a5a989b864 | ||
|
|
a4c9a2265e | ||
|
|
5483f75af1 | ||
|
|
d9bb314bce | ||
|
|
037de25724 | ||
|
|
62a947a5c0 | ||
|
|
79ef311fa9 | ||
|
|
7500606a4c | ||
|
|
8b64a9f836 | ||
|
|
36f123576e | ||
|
|
a90d253597 | ||
|
|
8d98b973c2 | ||
|
|
0b2ae41334 | ||
|
|
0afecfb94d | ||
|
|
82ca722115 | ||
|
|
fa964f97bb | ||
|
|
51ec19622d | ||
|
|
e5d5eb49bc | ||
|
|
cfeac27a77 | ||
|
|
117063c08d | ||
|
|
6aa25ec700 | ||
|
|
473602a327 | ||
|
|
23d3ffb269 | ||
|
|
ff9b93d236 | ||
|
|
34c5200822 | ||
|
|
52b52c6a90 | ||
|
|
bcfdabd753 | ||
|
|
82bb31e1bc | ||
|
|
daad936c70 | ||
|
|
69de9c25d8 | ||
|
|
a92235c358 | ||
|
|
8282b61326 | ||
|
|
c7e15e82ee | ||
|
|
307a5cc2fc | ||
|
|
eec21b7aa1 | ||
|
|
e4e25871b5 | ||
|
|
d3bcc6f4ed | ||
|
|
9306dd2a36 | ||
|
|
64a49e9a4c | ||
|
|
fb9883fd47 | ||
|
|
5afed4d86f | ||
|
|
c15fa252c9 | ||
|
|
0b54896068 | ||
|
|
fef4a7b906 | ||
|
|
5540bef2e0 | ||
|
|
1d6ee6173d | ||
|
|
09855abd10 | ||
|
|
f44b0438e9 | ||
|
|
510d71ac66 | ||
|
|
37b30d73a1 | ||
|
|
e132f89e33 | ||
|
|
71ad691a7e | ||
|
|
d5e2a05206 | ||
|
|
b4c3f61cb5 | ||
|
|
c0e78e05ee | ||
|
|
476c4abacf | ||
|
|
5a5e814a5f | ||
|
|
b3094f2bc4 | ||
|
|
113c6ed117 | ||
|
|
5f621d664c | ||
|
|
02ec9c6768 | ||
|
|
7d6c00242d | ||
|
|
53c08bb85d | ||
|
|
533c194027 | ||
|
|
fa119b29ae | ||
|
|
8e9f663ddd | ||
|
|
7630ff55c8 | ||
|
|
120a4ea142 | ||
|
|
7a443d6c1e | ||
|
|
86fc6fe0d9 | ||
|
|
dd45866285 | ||
|
|
389b614644 | ||
|
|
0a1117c93f | ||
|
|
f6bd03f857 | ||
|
|
fa59e00333 | ||
|
|
5ba519d696 | ||
|
|
e764bc1871 | ||
|
|
8a8eb43dad |
@@ -16,6 +16,10 @@ permissions:
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
concurrency:
|
||||
group: update-docs
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
update-docs:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -46,7 +50,22 @@ jobs:
|
||||
git config --local user.name "github-actions[bot]"
|
||||
git add docs/
|
||||
git commit -m "docs: auto-update documentation from casks"
|
||||
git push
|
||||
for attempt in 1 2 3 4; do
|
||||
if git pull --rebase origin main; then
|
||||
git push && exit 0
|
||||
else
|
||||
git rebase --abort || true
|
||||
git reset --hard origin/main
|
||||
./scripts/generate-docs.sh
|
||||
git diff --quiet docs/index.html && exit 0
|
||||
git add docs/
|
||||
git commit -m "docs: auto-update documentation from casks"
|
||||
git push && exit 0
|
||||
fi
|
||||
sleep $((attempt * 5))
|
||||
done
|
||||
echo "could not push after 4 attempts" >&2
|
||||
exit 1
|
||||
|
||||
deploy-pages:
|
||||
needs: update-docs
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
name: Fix GoReleaser casks
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'Casks/**'
|
||||
- 'scripts/fix-casks.sh'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
fix-casks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Rewrite postflight blocks
|
||||
run: scripts/fix-casks.sh
|
||||
|
||||
- name: Commit and push changes
|
||||
run: |
|
||||
if git diff --quiet Casks/; then
|
||||
exit 0
|
||||
fi
|
||||
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git config --local user.name "github-actions[bot]"
|
||||
git add Casks/
|
||||
git commit -m "fix(casks): rewrite postflight to postflight_steps"
|
||||
git push
|
||||
@@ -37,7 +37,9 @@ jobs:
|
||||
continue-on-error: true
|
||||
|
||||
- name: Fix style issues from GoReleaser-generated files
|
||||
run: brew style --fix Casks/*.rb || true
|
||||
run: |
|
||||
scripts/fix-casks.sh
|
||||
brew style --fix Casks/*.rb || true
|
||||
working-directory: ${{ steps.set-up-homebrew.outputs.repository-path }}
|
||||
|
||||
- run: brew test-bot --only-tap-syntax
|
||||
|
||||
+14
-17
@@ -1,27 +1,26 @@
|
||||
# This file was generated by GoReleaser. DO NOT EDIT.
|
||||
cask "harness-sync" do
|
||||
version "0.29.14"
|
||||
version "0.31.21"
|
||||
|
||||
on_macos do
|
||||
on_intel do
|
||||
sha256 "3189d807480e70952e064cbafa4ba50ed5d80f93cc2df4d30c921cf81622a94f"
|
||||
url "https://github.com/lukaszraczylo/harness-sync/releases/download/v#{version}/harness-sync-darwin-amd64.tar.gz"
|
||||
end
|
||||
on_arm do
|
||||
sha256 "e25e2a874491d94247720dace260ce9216a7930f64a6287ce28865ad72ac04f2"
|
||||
sha256 "9f9c78f187dbe637b4fcf8b087f29ce76c9525af360334ea45a1786969fdacb6"
|
||||
url "https://github.com/lukaszraczylo/harness-sync/releases/download/v#{version}/harness-sync-darwin-arm64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
on_linux do
|
||||
on_intel do
|
||||
sha256 "6c5314248e5c21d032bcf14ff0ad0183ee700d1b45c7550e73d5f556cc966855"
|
||||
url "https://github.com/lukaszraczylo/harness-sync/releases/download/v#{version}/harness-sync-linux-amd64.tar.gz"
|
||||
sha256 "83f654e33d93740ed8c265ba38cc068f3196c0154843dbc2a92b440504a67dec"
|
||||
url "https://github.com/lukaszraczylo/harness-sync/releases/download/v#{version}/harness-sync-darwin-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
on_linux do
|
||||
on_arm do
|
||||
sha256 "e166b5ffeb4381190743030f448be0afbe5bb7ca8ef85fa542068df89b70b12a"
|
||||
sha256 "e5f8a68cb0051189444456564ebecaa6c4db2d0772926c1be556c5a2afc53194"
|
||||
url "https://github.com/lukaszraczylo/harness-sync/releases/download/v#{version}/harness-sync-linux-arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "2fd6e66498e5f2b113795685bef6dece1cfb7b1589ea9b2429e6c2201caffa86"
|
||||
url "https://github.com/lukaszraczylo/harness-sync/releases/download/v#{version}/harness-sync-linux-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
name "harness-sync"
|
||||
@@ -34,13 +33,11 @@ cask "harness-sync" do
|
||||
|
||||
binary "harness-sync"
|
||||
|
||||
postflight do
|
||||
if OS.mac?
|
||||
system_command "/usr/bin/xattr",
|
||||
args: ["-dr", "com.apple.quarantine", "#{staged_path}/harness-sync"]
|
||||
postflight_steps do
|
||||
on_macos do
|
||||
run "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "{{staged_path}}/harness-sync"]
|
||||
end
|
||||
end
|
||||
|
||||
# No zap stanza required
|
||||
|
||||
end
|
||||
|
||||
+16
-23
@@ -1,30 +1,25 @@
|
||||
# This file was generated by GoReleaser. DO NOT EDIT.
|
||||
cask "kportal" do
|
||||
version "0.9.11"
|
||||
version "0.13.10"
|
||||
|
||||
on_macos do
|
||||
on_intel do
|
||||
sha256 "4af53d287b7a4a1450dd9a7bad343c929126a003edc403be226ed322ce5e847d"
|
||||
url "https://github.com/lukaszraczylo/kportal/releases/download/v#{version}/kportal-#{version}-darwin-amd64.tar.gz",
|
||||
verified: "github.com/lukaszraczylo/kportal"
|
||||
end
|
||||
on_arm do
|
||||
sha256 "d2cef3c88342652c6183916df2c5d65fa025e805602aa282b3b95990d084b4ef"
|
||||
url "https://github.com/lukaszraczylo/kportal/releases/download/v#{version}/kportal-#{version}-darwin-arm64.tar.gz",
|
||||
verified: "github.com/lukaszraczylo/kportal"
|
||||
sha256 "0b0db43ea5b592506030922f795fd36b19032ef7e4e3d8a0c1e0a4d0fb98f1a6"
|
||||
url "https://github.com/lukaszraczylo/kportal/releases/download/v#{version}/kportal-#{version}-darwin-arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "36e54c3045a90d75114f5ae196aad93e0258e31834952bf952cedf15fbc7a64f"
|
||||
url "https://github.com/lukaszraczylo/kportal/releases/download/v#{version}/kportal-#{version}-darwin-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
on_linux do
|
||||
on_intel do
|
||||
sha256 "2eeb4fb4a605874730ef15f41fb5cfe0e1ba4fc8fddeec3b7b168653da4c04e2"
|
||||
url "https://github.com/lukaszraczylo/kportal/releases/download/v#{version}/kportal-#{version}-linux-amd64.tar.gz",
|
||||
verified: "github.com/lukaszraczylo/kportal"
|
||||
end
|
||||
on_arm do
|
||||
sha256 "125798260ad01aeb3b1b4381b207471c1f8d3b7212d9f1408453b1e2db34072b"
|
||||
url "https://github.com/lukaszraczylo/kportal/releases/download/v#{version}/kportal-#{version}-linux-arm64.tar.gz",
|
||||
verified: "github.com/lukaszraczylo/kportal"
|
||||
sha256 "95af21e1864af97500c432a903ebeef8fd615e4f6c29e4ebc067f9fb3f43bd60"
|
||||
url "https://github.com/lukaszraczylo/kportal/releases/download/v#{version}/kportal-#{version}-linux-arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "2e9c70cc8bd44fd689faefa9559e143c14b47f2631b7d405d833dac4cad07cda"
|
||||
url "https://github.com/lukaszraczylo/kportal/releases/download/v#{version}/kportal-#{version}-linux-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -38,13 +33,11 @@ cask "kportal" do
|
||||
|
||||
binary "kportal"
|
||||
|
||||
postflight do
|
||||
if OS.mac?
|
||||
system_command "/usr/bin/xattr",
|
||||
args: ["-dr", "com.apple.quarantine", "#{staged_path}/kportal"]
|
||||
postflight_steps do
|
||||
on_macos do
|
||||
run "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "{{staged_path}}/kportal"]
|
||||
end
|
||||
end
|
||||
|
||||
# No zap stanza required
|
||||
|
||||
end
|
||||
|
||||
+14
-17
@@ -1,27 +1,26 @@
|
||||
# This file was generated by GoReleaser. DO NOT EDIT.
|
||||
cask "lolcathost" do
|
||||
version "0.2.10"
|
||||
version "0.2.26"
|
||||
|
||||
on_macos do
|
||||
on_intel do
|
||||
sha256 "c069ef37f283817386010298520f70c54ae7ba2d066be23e9a148bb1011c6cca"
|
||||
url "https://github.com/lukaszraczylo/lolcathost/releases/download/v#{version}/lolcathost-#{version}-darwin-amd64.tar.gz"
|
||||
end
|
||||
on_arm do
|
||||
sha256 "d2c50ccaf0d65ac65b82e4039b449b62336cba6e073d455a87f987fa9d94b4aa"
|
||||
sha256 "8c348f1cec7ad8081deb697d7ac834d2125af036ba88d634c0a4719ca6d430dc"
|
||||
url "https://github.com/lukaszraczylo/lolcathost/releases/download/v#{version}/lolcathost-#{version}-darwin-arm64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
on_linux do
|
||||
on_intel do
|
||||
sha256 "3dac1ca448938a71ade6f6503858ce2bc0c2e608f6f02ea18ee0b43d8ce852c4"
|
||||
url "https://github.com/lukaszraczylo/lolcathost/releases/download/v#{version}/lolcathost-#{version}-linux-amd64.tar.gz"
|
||||
sha256 "18e0bb50864c2d1b2522098ee9b8301e91e01eeb98d8674683c889c7d9c3509e"
|
||||
url "https://github.com/lukaszraczylo/lolcathost/releases/download/v#{version}/lolcathost-#{version}-darwin-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
on_linux do
|
||||
on_arm do
|
||||
sha256 "2c59236ff868861263d83d4a0ad6680bcac2d6ef1faee11a67b265318bccd591"
|
||||
sha256 "a8ef68ae49d43a62e8a002c13f86b215dc72dd6a9247384ff4fe7add7d12640b"
|
||||
url "https://github.com/lukaszraczylo/lolcathost/releases/download/v#{version}/lolcathost-#{version}-linux-arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "b050ae2e8d70910b085916faab68423d62cc9ba246f5826e865cea28972de2d2"
|
||||
url "https://github.com/lukaszraczylo/lolcathost/releases/download/v#{version}/lolcathost-#{version}-linux-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
name "lolcathost"
|
||||
@@ -34,13 +33,11 @@ cask "lolcathost" do
|
||||
|
||||
binary "lolcathost"
|
||||
|
||||
postflight do
|
||||
if OS.mac?
|
||||
system_command "/usr/bin/xattr",
|
||||
args: ["-dr", "com.apple.quarantine", "#{staged_path}/lolcathost"]
|
||||
postflight_steps do
|
||||
on_macos do
|
||||
run "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "{{staged_path}}/lolcathost"]
|
||||
end
|
||||
end
|
||||
|
||||
# No zap stanza required
|
||||
|
||||
end
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# This file was generated by GoReleaser. DO NOT EDIT.
|
||||
cask "mcp-filepuff" do
|
||||
version "2.1.16"
|
||||
|
||||
on_macos do
|
||||
on_arm do
|
||||
sha256 "f3798b25c280a0859abb280eb92812ee2119ea65eb268ffcd36ef6c06c0759ab"
|
||||
url "https://github.com/lukaszraczylo/filepuff-mcp/releases/download/v#{version}/mcp-filepuff_#{version}_darwin_arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "2cb469b02fa47b44bc0100e8bced47a1aa56cb3d9df9d1e7d2f24a40e79e87da"
|
||||
url "https://github.com/lukaszraczylo/filepuff-mcp/releases/download/v#{version}/mcp-filepuff_#{version}_darwin_amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
on_linux do
|
||||
on_arm do
|
||||
sha256 "333fd198deb4f857548b6eb3626b4d175309a72b715b904f56fdb4705d5a9434"
|
||||
url "https://github.com/lukaszraczylo/filepuff-mcp/releases/download/v#{version}/mcp-filepuff_#{version}_linux_arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "cd466792eabf7bbfeb0e8d5862fc428896217260fb3e262070d0b881f3c61551"
|
||||
url "https://github.com/lukaszraczylo/filepuff-mcp/releases/download/v#{version}/mcp-filepuff_#{version}_linux_amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
name "mcp-filepuff"
|
||||
desc "AST-aware file operations and LSP integration MCP server for Claude Code"
|
||||
homepage "https://github.com/lukaszraczylo/filepuff-mcp"
|
||||
|
||||
livecheck do
|
||||
skip "Auto-generated on release."
|
||||
end
|
||||
|
||||
binary "mcp-filepuff"
|
||||
|
||||
postflight_steps do
|
||||
on_macos do
|
||||
run "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "{{staged_path}}/mcp-filepuff"]
|
||||
end
|
||||
end
|
||||
|
||||
# No zap stanza required
|
||||
end
|
||||
@@ -0,0 +1,43 @@
|
||||
# This file was generated by GoReleaser. DO NOT EDIT.
|
||||
cask "readitall" do
|
||||
version "0.1.46"
|
||||
|
||||
on_macos do
|
||||
on_arm do
|
||||
sha256 "f14fb70b83c401e193da8cdff3b2004ff9530d6dcaeb1a144f309a0a4d4d1b03"
|
||||
url "https://github.com/lukaszraczylo/mcp-readitall/releases/download/v#{version}/readitall-#{version}-darwin-arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "3bfe83eb4b37e3c982a2f27e19219caca5af1994cb67ef261084a3832fe95d9c"
|
||||
url "https://github.com/lukaszraczylo/mcp-readitall/releases/download/v#{version}/readitall-#{version}-darwin-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
on_linux do
|
||||
on_arm do
|
||||
sha256 "bac257872ee7bd06536afe2759765560e04589e04282a7d3dfde3dc533b03c88"
|
||||
url "https://github.com/lukaszraczylo/mcp-readitall/releases/download/v#{version}/readitall-#{version}-linux-arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "4a6079e4f4949287d1a90c1a4078a26c558152b1a7f74aefc4f8aad3bd85c97c"
|
||||
url "https://github.com/lukaszraczylo/mcp-readitall/releases/download/v#{version}/readitall-#{version}-linux-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
name "readitall"
|
||||
desc "MCP server that reads web pages through a headless Chromium-family browser"
|
||||
homepage "https://github.com/lukaszraczylo/mcp-readitall"
|
||||
|
||||
livecheck do
|
||||
skip "Auto-generated on release."
|
||||
end
|
||||
|
||||
binary "readitall"
|
||||
|
||||
postflight_steps do
|
||||
on_macos do
|
||||
run "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "{{staged_path}}/readitall"]
|
||||
end
|
||||
end
|
||||
|
||||
# No zap stanza required
|
||||
end
|
||||
+14
-17
@@ -1,27 +1,26 @@
|
||||
# This file was generated by GoReleaser. DO NOT EDIT.
|
||||
cask "semver-generator" do
|
||||
version "1.17.6"
|
||||
version "1.18.27"
|
||||
|
||||
on_macos do
|
||||
on_intel do
|
||||
sha256 "cec1ebbe0378da151fbdb1d6337565a92f72a7a69cb6589e8ebaaef9418e5f29"
|
||||
url "https://github.com/lukaszraczylo/semver-generator/releases/download/v#{version}/semver-generator-darwin-amd64.tar.gz"
|
||||
end
|
||||
on_arm do
|
||||
sha256 "ad5a7a96cadbe5eea19607387dd8a2be29ccd06e436ce1b074dadda58fdcae79"
|
||||
sha256 "8e8f439d28baeb3dec8bbb5742ebbb9c556819336d00b61e15d08af92343f8ef"
|
||||
url "https://github.com/lukaszraczylo/semver-generator/releases/download/v#{version}/semver-generator-darwin-arm64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
on_linux do
|
||||
on_intel do
|
||||
sha256 "c74bd9f66fd913d6a9f400eaaed10457cedfd383fe8a03abd9ae2f46acbf5f28"
|
||||
url "https://github.com/lukaszraczylo/semver-generator/releases/download/v#{version}/semver-generator-linux-amd64.tar.gz"
|
||||
sha256 "2488bee773c6d3046c993031eb76fa0f30470bb9f21fd738527005f13be060da"
|
||||
url "https://github.com/lukaszraczylo/semver-generator/releases/download/v#{version}/semver-generator-darwin-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
on_linux do
|
||||
on_arm do
|
||||
sha256 "e93d1e52762155db2f6772416b80fd6261e48e892ffe5ba978cd487ca8bedf4b"
|
||||
sha256 "4ca01dcb52e7a3fc07649a2c28a722c2bba9ad5da0bfea88d6c9b916ab4e81ec"
|
||||
url "https://github.com/lukaszraczylo/semver-generator/releases/download/v#{version}/semver-generator-linux-arm64.tar.gz"
|
||||
end
|
||||
on_intel do
|
||||
sha256 "a39e0a124f3310df41b02f4f6051b375b57c9af78ff86712d927fbd062464ba1"
|
||||
url "https://github.com/lukaszraczylo/semver-generator/releases/download/v#{version}/semver-generator-linux-amd64.tar.gz"
|
||||
end
|
||||
end
|
||||
|
||||
name "semver-generator"
|
||||
@@ -34,13 +33,11 @@ cask "semver-generator" do
|
||||
|
||||
binary "semver-generator"
|
||||
|
||||
postflight do
|
||||
if OS.mac?
|
||||
system_command "/usr/bin/xattr",
|
||||
args: ["-dr", "com.apple.quarantine", "#{staged_path}/semver-generator"]
|
||||
postflight_steps do
|
||||
on_macos do
|
||||
run "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "{{staged_path}}/semver-generator"]
|
||||
end
|
||||
end
|
||||
|
||||
# No zap stanza required
|
||||
|
||||
end
|
||||
|
||||
@@ -6,8 +6,9 @@ Custom Homebrew tap for macOS and Linux tools by Lukasz Raczylo.
|
||||
|
||||
| Cask | Description |
|
||||
|------|-------------|
|
||||
| [harness-sync](https://github.com/lukaszraczylo/harness-sync) | Sync skills, agents, MCP, and LLM endpoints across multiple LLM harnesses |
|
||||
| [kportal](https://github.com/lukaszraczylo/kportal) | Modern Kubernetes port-forward manager with interactive TUI |
|
||||
| [lolcathost](https://github.com/lukaszraczylo/lolcathost) | Dynamic hosts file manager with interactive terminal UI |
|
||||
| [lolcathost](https://github.com/lukaszraczylo/lolcathost) | Dynamic host management tool with TUI |
|
||||
| [semver-generator](https://github.com/lukaszraczylo/semver-generator) | Automatic semantic version generator based on git commit messages |
|
||||
|
||||
## Installation
|
||||
@@ -36,6 +37,7 @@ Add to your Brewfile:
|
||||
|
||||
```ruby
|
||||
tap "lukaszraczylo/taps"
|
||||
cask "harness-sync"
|
||||
cask "kportal"
|
||||
cask "lolcathost"
|
||||
cask "semver-generator"
|
||||
|
||||
+247
-353
@@ -1,420 +1,314 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="scroll-smooth">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Homebrew Tap - lukaszraczylo</title>
|
||||
<meta name="color-scheme" content="light dark" />
|
||||
<title>Homebrew tap - lukaszraczylo</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Homebrew tap for macOS and Linux tools by Lukasz Raczylo. Install developer tools easily with brew."
|
||||
/>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
darkMode: 'class'
|
||||
}
|
||||
</script>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||
content="Homebrew tap with command-line tools by Lukasz Raczylo: kportal, lolcathost, semver-generator and harness-sync."
|
||||
/>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"
|
||||
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<style>
|
||||
body { font-family: "Inter", sans-serif; }
|
||||
code, pre { font-family: "JetBrains Mono", monospace; }
|
||||
.theme-transition {
|
||||
transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
|
||||
:root {
|
||||
--bg: #ffffff;
|
||||
--fg: #111418;
|
||||
--muted: #5b6470;
|
||||
--line: #e3e6ea;
|
||||
--code-bg: #f5f6f8;
|
||||
--accent: #b45309;
|
||||
--accent-fg: #ffffff;
|
||||
--sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
||||
--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
}
|
||||
@keyframes fadeInUp {
|
||||
from { opacity: 0; transform: translateY(20px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--bg: #0e1013;
|
||||
--fg: #e8eaed;
|
||||
--muted: #98a1ad;
|
||||
--line: #262b32;
|
||||
--code-bg: #171a1f;
|
||||
--accent: #f59e0b;
|
||||
--accent-fg: #0e1013;
|
||||
}
|
||||
}
|
||||
@keyframes float {
|
||||
0%, 100% { transform: translateY(0px); }
|
||||
50% { transform: translateY(-10px); }
|
||||
* { box-sizing: border-box; }
|
||||
html { -webkit-text-size-adjust: 100%; }
|
||||
body {
|
||||
margin: 0;
|
||||
background: var(--bg);
|
||||
color: var(--fg);
|
||||
font: 16px/1.6 var(--sans);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
.animate-fade-in-up { animation: fadeInUp 0.6s ease-out; }
|
||||
.animate-float { animation: float 3s ease-in-out infinite; }
|
||||
.glass {
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
a { color: inherit; text-decoration-color: var(--line); text-underline-offset: 3px; }
|
||||
a:hover { text-decoration-color: var(--accent); }
|
||||
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
||||
code, pre { font-family: var(--mono); font-size: 0.875rem; }
|
||||
.wrap { max-width: 56rem; margin: 0 auto; padding: 0 1.25rem; }
|
||||
|
||||
header.top { border-bottom: 1px solid var(--line); }
|
||||
header.top .wrap {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 3.5rem;
|
||||
}
|
||||
.dark .glass {
|
||||
background: rgba(17, 24, 39, 0.7);
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
.brand { font-family: var(--mono); font-weight: 500; text-decoration: none; }
|
||||
.brand span { color: var(--accent); }
|
||||
nav.links { display: flex; gap: 1.5rem; font-size: 0.9375rem; color: var(--muted); }
|
||||
nav.links a { text-decoration: none; }
|
||||
nav.links a:hover { color: var(--fg); }
|
||||
|
||||
.intro { padding: 4rem 0 3rem; }
|
||||
h1 {
|
||||
margin: 0 0 1rem;
|
||||
font-size: clamp(1.875rem, 5vw, 2.75rem);
|
||||
line-height: 1.15;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
.gradient-text {
|
||||
background: linear-gradient(135deg, #10b981 0%, #3b82f6 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
}
|
||||
.dark .gradient-text {
|
||||
background: linear-gradient(135deg, #34d399 0%, #60a5fa 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-clip: text;
|
||||
}
|
||||
.shadow-modern { box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.1); }
|
||||
.dark .shadow-modern { box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.4); }
|
||||
html { scroll-behavior: smooth; }
|
||||
.code-block {
|
||||
.intro p { margin: 0 0 1.5rem; max-width: 38rem; color: var(--muted); font-size: 1.125rem; }
|
||||
|
||||
section { padding: 2.5rem 0; border-top: 1px solid var(--line); }
|
||||
h2 { margin: 0 0 1.5rem; font-size: 1.125rem; font-weight: 600; }
|
||||
h2 small { margin-left: 0.5rem; color: var(--muted); font-weight: 400; font-size: 0.875rem; }
|
||||
|
||||
.cmd {
|
||||
position: relative;
|
||||
background: var(--code-bg);
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 6px;
|
||||
}
|
||||
.cmd pre { margin: 0; padding: 0.75rem 4.5rem 0.75rem 1rem; overflow-x: auto; }
|
||||
.copy-btn {
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
top: 50%;
|
||||
right: 0.5rem;
|
||||
padding: 0.25rem 0.5rem;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
border-radius: 0.375rem;
|
||||
color: #9ca3af;
|
||||
font-size: 0.75rem;
|
||||
transform: translateY(-50%);
|
||||
padding: 0.25rem 0.625rem;
|
||||
background: var(--bg);
|
||||
color: var(--muted);
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 4px;
|
||||
font: 500 0.75rem var(--sans);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.25rem;
|
||||
}
|
||||
.copy-btn:hover {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
color: #fff;
|
||||
}
|
||||
.copy-btn.copied {
|
||||
background: rgba(16, 185, 129, 0.3);
|
||||
border-color: rgba(16, 185, 129, 0.5);
|
||||
color: #34d399;
|
||||
.copy-btn:hover { color: var(--fg); border-color: var(--muted); }
|
||||
.copy-btn.copied { color: var(--accent); border-color: var(--accent); }
|
||||
|
||||
.projects { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
|
||||
.project { padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
|
||||
.project-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.75rem; }
|
||||
.project h3 { margin: 0; font-family: var(--mono); font-size: 1.0625rem; font-weight: 500; }
|
||||
.meta { color: var(--muted); font-size: 0.8125rem; font-family: var(--mono); }
|
||||
.project-links { margin-left: auto; display: flex; gap: 1rem; font-size: 0.875rem; color: var(--muted); }
|
||||
.project-links a:hover { color: var(--fg); }
|
||||
.project p { margin: 0.375rem 0 1rem; color: var(--muted); }
|
||||
|
||||
.note { margin: 0 0 1rem; color: var(--muted); }
|
||||
.note + .cmd { margin-bottom: 1.5rem; }
|
||||
|
||||
footer { border-top: 1px solid var(--line); padding: 1.5rem 0 3rem; color: var(--muted); font-size: 0.875rem; }
|
||||
footer .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1.5rem; }
|
||||
footer a { text-decoration: none; }
|
||||
footer a:hover { color: var(--fg); }
|
||||
|
||||
@media (max-width: 36rem) {
|
||||
.intro { padding: 2.5rem 0 2rem; }
|
||||
.project-links { margin-left: 0; width: 100%; }
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
if (localStorage.theme === "dark" || (!("theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
|
||||
document.documentElement.classList.add("dark");
|
||||
} else {
|
||||
document.documentElement.classList.remove("dark");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 theme-transition">
|
||||
<!-- Navigation -->
|
||||
<nav class="fixed w-full glass shadow-modern z-50 theme-transition">
|
||||
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
||||
<div class="flex justify-between h-16 items-center">
|
||||
<a href="#" class="flex items-center hover:opacity-80 transition-opacity duration-300 gap-2">
|
||||
<i class="fas fa-beer text-2xl text-amber-500"></i>
|
||||
<span class="text-2xl font-bold gradient-text">brew-taps</span>
|
||||
</a>
|
||||
<div class="hidden md:flex space-x-6">
|
||||
<a href="#casks" class="text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 font-medium">Available Casks</a>
|
||||
<a href="#installation" class="text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 font-medium">Installation</a>
|
||||
</div>
|
||||
<div class="flex items-center space-x-4">
|
||||
<button id="theme-toggle" class="text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 p-2 min-w-[44px] min-h-[44px] flex items-center justify-center" aria-label="Toggle theme">
|
||||
<i class="fas fa-moon dark:hidden text-xl"></i>
|
||||
<i class="fas fa-sun hidden dark:inline text-xl"></i>
|
||||
</button>
|
||||
<a href="https://github.com/lukaszraczylo/homebrew-taps" target="_blank" class="text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 p-2 min-w-[44px] min-h-[44px] flex items-center justify-center" aria-label="View on GitHub">
|
||||
<i class="fab fa-github text-xl"></i>
|
||||
</a>
|
||||
<button id="mobile-menu-toggle" class="md:hidden text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 p-2 min-w-[44px] min-h-[44px] flex items-center justify-center" aria-label="Toggle menu">
|
||||
<i class="fas fa-bars text-xl" id="menu-open-icon"></i>
|
||||
<i class="fas fa-times text-xl hidden" id="menu-close-icon"></i>
|
||||
</button>
|
||||
</div>
|
||||
<body>
|
||||
<header class="top">
|
||||
<div class="wrap">
|
||||
<a class="brand" href="#">brew<span>/</span>taps</a>
|
||||
<nav class="links" aria-label="Primary">
|
||||
<a href="#projects">Projects</a>
|
||||
<a href="#install">Install</a>
|
||||
<a href="https://github.com/lukaszraczylo/homebrew-taps">GitHub</a>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="wrap">
|
||||
<div class="intro">
|
||||
<h1>Homebrew tap for the command-line tools at raczylo.com</h1>
|
||||
<p>
|
||||
Prebuilt binaries for macOS and Linux, on arm64 and amd64. Tap once, then install any project
|
||||
below as a cask.
|
||||
</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew tap lukaszraczylo/taps</code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="mobile-menu" class="hidden md:hidden border-t border-gray-200 dark:border-gray-700">
|
||||
<div class="px-4 py-3 space-y-1 bg-white dark:bg-gray-800">
|
||||
<a href="#casks" class="block px-3 py-3 text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 hover:bg-gray-50 dark:hover:bg-gray-700 rounded font-medium">Available Casks</a>
|
||||
<a href="#installation" class="block px-3 py-3 text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 hover:bg-gray-50 dark:hover:bg-gray-700 rounded font-medium">Installation</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Hero Section -->
|
||||
<section class="relative pt-24 sm:pt-32 pb-12 sm:pb-20 overflow-hidden">
|
||||
<div class="absolute inset-0 bg-gradient-to-br from-emerald-50 via-blue-50 to-purple-50 dark:from-gray-900 dark:via-emerald-900/20 dark:to-blue-900/20 theme-transition"></div>
|
||||
<div class="absolute top-0 -left-4 w-72 h-72 bg-emerald-300 dark:bg-emerald-500 rounded-full mix-blend-multiply dark:mix-blend-soft-light filter blur-xl opacity-20 animate-float"></div>
|
||||
<div class="absolute top-0 -right-4 w-72 h-72 bg-blue-300 dark:bg-blue-500 rounded-full mix-blend-multiply dark:mix-blend-soft-light filter blur-xl opacity-20 animate-float" style="animation-delay: 1s;"></div>
|
||||
<div class="absolute -bottom-8 left-20 w-72 h-72 bg-purple-300 dark:bg-purple-500 rounded-full mix-blend-multiply dark:mix-blend-soft-light filter blur-xl opacity-20 animate-float" style="animation-delay: 2s;"></div>
|
||||
|
||||
<div class="relative max-w-6xl mx-auto px-4 sm:px-6">
|
||||
<div class="text-center">
|
||||
<div class="mb-8 sm:mb-10 flex justify-center animate-fade-in-up">
|
||||
<i class="fas fa-beer text-8xl sm:text-9xl text-amber-500 animate-float"></i>
|
||||
</div>
|
||||
<h1 class="text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold text-gray-900 dark:text-gray-100 mb-4 sm:mb-6 leading-tight animate-fade-in-up" style="animation-delay: 0.1s;">
|
||||
Homebrew Tap<br /><span class="gradient-text">at raczylo.com</span>
|
||||
</h1>
|
||||
<p class="text-base sm:text-lg md:text-xl text-gray-600 dark:text-gray-300 mb-8 sm:mb-10 max-w-2xl mx-auto leading-relaxed px-4 animate-fade-in-up" style="animation-delay: 0.2s;">
|
||||
Developer tools for macOS and Linux. Install powerful CLI utilities with a single command.
|
||||
</p>
|
||||
<div class="flex flex-col sm:flex-row gap-3 sm:gap-4 justify-center mb-8 sm:mb-12 px-4 animate-fade-in-up" style="animation-delay: 0.3s;">
|
||||
<a href="#installation" class="group relative bg-gradient-to-r from-emerald-500 to-blue-600 hover:from-emerald-600 hover:to-blue-700 text-white px-8 py-3 rounded-lg font-medium transition-all duration-300 min-h-[48px] flex items-center justify-center shadow-lg hover:shadow-xl hover:scale-105">
|
||||
<span class="relative z-10">Get Started</span>
|
||||
</a>
|
||||
<a href="https://github.com/lukaszraczylo/homebrew-taps" class="group glass hover:shadow-lg text-gray-900 dark:text-gray-100 px-8 py-3 rounded-lg font-medium transition-all duration-300 min-h-[48px] flex items-center justify-center hover:scale-105">
|
||||
<i class="fab fa-github mr-2"></i>View on GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Available Casks Section -->
|
||||
<section id="casks" class="py-12 sm:py-16 md:py-20 bg-white dark:bg-gray-900 theme-transition">
|
||||
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
||||
<div class="text-center mb-8 sm:mb-12">
|
||||
<h2 class="text-2xl sm:text-3xl md:text-4xl font-bold text-gray-900 dark:text-gray-100 mb-3 sm:mb-4">Available Casks</h2>
|
||||
<p class="text-base sm:text-lg text-gray-600 dark:text-gray-300 px-4">Install any of these tools with Homebrew</p>
|
||||
</div>
|
||||
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6" id="casks-container">
|
||||
<section id="projects">
|
||||
<h2>Projects <small>installed with <code>brew install --cask</code></small></h2>
|
||||
<ul class="projects">
|
||||
<!-- CASKS_START -->
|
||||
|
||||
<!-- harness-sync -->
|
||||
<div class="glass p-6 rounded-xl group hover:shadow-lg transition-all duration-300">
|
||||
<div class="flex items-start gap-4 mb-4">
|
||||
<div class="w-12 h-12 rounded-xl bg-gradient-to-br from-gray-500 to-gray-600 flex items-center justify-center flex-shrink-0 group-hover:scale-110 transition-transform duration-300">
|
||||
<i class="fas fa-cube text-white text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<h3 class="font-bold text-gray-900 dark:text-gray-100 text-lg">harness-sync</h3>
|
||||
<span class="text-xs text-gray-500 dark:text-gray-400">v0.29.14</span>
|
||||
</div>
|
||||
<li class="project">
|
||||
<div class="project-head">
|
||||
<h3>harness-sync</h3>
|
||||
<span class="meta">v0.31.21 · LLM</span>
|
||||
<span class="project-links">
|
||||
<a href="https://github.com/lukaszraczylo/harness-sync">GitHub</a>
|
||||
</span>
|
||||
</div>
|
||||
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">Sync skills, agents, MCP, and LLM endpoints across multiple LLM harnesses</p>
|
||||
<div class="flex flex-wrap gap-2 mb-4">
|
||||
<span class="px-2 py-1 bg-gray-100 dark:bg-gray-900/30 text-gray-700 dark:text-gray-300 rounded text-xs">CLI</span>
|
||||
<p>Sync skills, agents, MCP, and LLM endpoints across multiple LLM harnesses</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew install --cask lukaszraczylo/taps/harness-sync</code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<a href="https://github.com/lukaszraczylo/harness-sync" target="_blank" class="flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors">
|
||||
<i class="fab fa-github mr-1"></i>GitHub
|
||||
</a>
|
||||
</div>
|
||||
<div class="code-block mt-4">
|
||||
<pre class="bg-gray-900 text-gray-100 p-3 pr-16 rounded-lg text-xs overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/harness-sync</code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<!-- kportal -->
|
||||
<div class="glass p-6 rounded-xl group hover:shadow-lg transition-all duration-300">
|
||||
<div class="flex items-start gap-4 mb-4">
|
||||
<div class="w-12 h-12 rounded-xl bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center flex-shrink-0 group-hover:scale-110 transition-transform duration-300">
|
||||
<i class="fas fa-ship text-white text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<h3 class="font-bold text-gray-900 dark:text-gray-100 text-lg">kportal</h3>
|
||||
<span class="text-xs text-gray-500 dark:text-gray-400">v0.9.11</span>
|
||||
</div>
|
||||
<li class="project">
|
||||
<div class="project-head">
|
||||
<h3>kportal</h3>
|
||||
<span class="meta">v0.13.10 · Kubernetes</span>
|
||||
<span class="project-links">
|
||||
<a href="https://kportal.raczylo.com">Docs</a>
|
||||
<a href="https://github.com/lukaszraczylo/kportal">GitHub</a>
|
||||
</span>
|
||||
</div>
|
||||
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">Modern Kubernetes port-forward manager with interactive TUI</p>
|
||||
<div class="flex flex-wrap gap-2 mb-4">
|
||||
<span class="px-2 py-1 bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded text-xs">Kubernetes</span>
|
||||
<span class="px-2 py-1 bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 rounded text-xs">TUI</span>
|
||||
<p>Modern Kubernetes port-forward manager with interactive TUI</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew install --cask lukaszraczylo/taps/kportal</code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<a href="https://kportal.raczylo.com" target="_blank" class="flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors">
|
||||
<i class="fas fa-book mr-1"></i>Docs
|
||||
</a>
|
||||
<a href="https://github.com/lukaszraczylo/kportal" target="_blank" class="flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors">
|
||||
<i class="fab fa-github mr-1"></i>GitHub
|
||||
</a>
|
||||
</div>
|
||||
<div class="code-block mt-4">
|
||||
<pre class="bg-gray-900 text-gray-100 p-3 pr-16 rounded-lg text-xs overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/kportal</code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<!-- lolcathost -->
|
||||
<div class="glass p-6 rounded-xl group hover:shadow-lg transition-all duration-300">
|
||||
<div class="flex items-start gap-4 mb-4">
|
||||
<div class="w-12 h-12 rounded-xl bg-gradient-to-br from-pink-500 to-purple-600 flex items-center justify-center flex-shrink-0 group-hover:scale-110 transition-transform duration-300">
|
||||
<i class="fas fa-cat text-white text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<h3 class="font-bold text-gray-900 dark:text-gray-100 text-lg">lolcathost</h3>
|
||||
<span class="text-xs text-gray-500 dark:text-gray-400">v0.2.10</span>
|
||||
</div>
|
||||
<li class="project">
|
||||
<div class="project-head">
|
||||
<h3>lolcathost</h3>
|
||||
<span class="meta">v0.2.26 · Hosts</span>
|
||||
<span class="project-links">
|
||||
<a href="https://lolcathost.raczylo.com">Docs</a>
|
||||
<a href="https://github.com/lukaszraczylo/lolcathost">GitHub</a>
|
||||
</span>
|
||||
</div>
|
||||
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">Dynamic host management tool with TUI</p>
|
||||
<div class="flex flex-wrap gap-2 mb-4">
|
||||
<span class="px-2 py-1 bg-pink-100 dark:bg-pink-900/30 text-pink-700 dark:text-pink-300 rounded text-xs">Hosts</span>
|
||||
<span class="px-2 py-1 bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 rounded text-xs">TUI</span>
|
||||
<p>Dynamic host management tool with TUI</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew install --cask lukaszraczylo/taps/lolcathost</code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<a href="https://lolcathost.raczylo.com" target="_blank" class="flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors">
|
||||
<i class="fas fa-book mr-1"></i>Docs
|
||||
</a>
|
||||
<a href="https://github.com/lukaszraczylo/lolcathost" target="_blank" class="flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors">
|
||||
<i class="fab fa-github mr-1"></i>GitHub
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<!-- mcp-filepuff -->
|
||||
<li class="project">
|
||||
<div class="project-head">
|
||||
<h3>mcp-filepuff</h3>
|
||||
<span class="meta">v2.1.16 · MCP</span>
|
||||
<span class="project-links">
|
||||
<a href="https://github.com/lukaszraczylo/filepuff-mcp">GitHub</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="code-block mt-4">
|
||||
<pre class="bg-gray-900 text-gray-100 p-3 pr-16 rounded-lg text-xs overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/lolcathost</code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
<p>AST-aware file operations and LSP integration MCP server for Claude Code</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew install --cask lukaszraczylo/taps/mcp-filepuff</code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<!-- readitall -->
|
||||
<li class="project">
|
||||
<div class="project-head">
|
||||
<h3>readitall</h3>
|
||||
<span class="meta">v0.1.46 · MCP</span>
|
||||
<span class="project-links">
|
||||
<a href="https://github.com/lukaszraczylo/mcp-readitall">GitHub</a>
|
||||
</span>
|
||||
</div>
|
||||
<p>MCP server that reads web pages through a headless Chromium-family browser</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew install --cask lukaszraczylo/taps/readitall</code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<!-- semver-generator -->
|
||||
<div class="glass p-6 rounded-xl group hover:shadow-lg transition-all duration-300">
|
||||
<div class="flex items-start gap-4 mb-4">
|
||||
<div class="w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-teal-600 flex items-center justify-center flex-shrink-0 group-hover:scale-110 transition-transform duration-300">
|
||||
<i class="fas fa-code-branch text-white text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<h3 class="font-bold text-gray-900 dark:text-gray-100 text-lg">semver-generator</h3>
|
||||
<span class="text-xs text-gray-500 dark:text-gray-400">v1.17.6</span>
|
||||
</div>
|
||||
<li class="project">
|
||||
<div class="project-head">
|
||||
<h3>semver-generator</h3>
|
||||
<span class="meta">v1.18.27 · Git</span>
|
||||
<span class="project-links">
|
||||
<a href="https://github.com/lukaszraczylo/semver-generator">GitHub</a>
|
||||
</span>
|
||||
</div>
|
||||
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">Automatic semantic version generator based on git commit messages</p>
|
||||
<div class="flex flex-wrap gap-2 mb-4">
|
||||
<span class="px-2 py-1 bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-300 rounded text-xs">Git</span>
|
||||
<span class="px-2 py-1 bg-teal-100 dark:bg-teal-900/30 text-teal-700 dark:text-teal-300 rounded text-xs">Versioning</span>
|
||||
<p>Automatic semantic version generator based on git commit messages</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew install --cask lukaszraczylo/taps/semver-generator</code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<a href="https://github.com/lukaszraczylo/semver-generator" target="_blank" class="flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors">
|
||||
<i class="fab fa-github mr-1"></i>GitHub
|
||||
</a>
|
||||
</div>
|
||||
<div class="code-block mt-4">
|
||||
<pre class="bg-gray-900 text-gray-100 p-3 pr-16 rounded-lg text-xs overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/semver-generator</code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<!-- CASKS_END -->
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<!-- Installation Section -->
|
||||
<section id="installation" class="py-12 sm:py-16 md:py-20 bg-gray-50 dark:bg-gray-800 theme-transition">
|
||||
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
||||
<div class="text-center mb-8 sm:mb-12">
|
||||
<h2 class="text-2xl sm:text-3xl md:text-4xl font-bold text-gray-900 dark:text-gray-100 mb-3 sm:mb-4">Installation</h2>
|
||||
<p class="text-base sm:text-lg text-gray-600 dark:text-gray-300 px-4">Get started in seconds</p>
|
||||
<section id="install">
|
||||
<h2>Install</h2>
|
||||
<p class="note">Install a project by name. Homebrew taps the repository on first use.</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew install --cask lukaszraczylo/taps/<name></code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
<div class="max-w-3xl mx-auto space-y-6">
|
||||
<div class="glass p-6 rounded-xl">
|
||||
<h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
|
||||
<i class="fas fa-plus-circle mr-2 text-emerald-500"></i>
|
||||
Add the Tap
|
||||
</h3>
|
||||
<div class="code-block">
|
||||
<pre class="bg-gray-900 text-gray-100 p-4 pr-20 rounded-lg overflow-x-auto"><code>brew tap lukaszraczylo/taps</code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass p-6 rounded-xl">
|
||||
<h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
|
||||
<i class="fas fa-download mr-2 text-blue-500"></i>
|
||||
Install a Cask
|
||||
</h3>
|
||||
<div class="code-block">
|
||||
<pre class="bg-gray-900 text-gray-100 p-4 pr-20 rounded-lg overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/<cask-name></code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
</div>
|
||||
<p class="text-sm text-gray-600 dark:text-gray-400 mt-3">Or install directly without tapping first:</p>
|
||||
<div class="code-block mt-2">
|
||||
<pre class="bg-gray-900 text-gray-100 p-4 pr-20 rounded-lg overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/kportal</code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="glass p-6 rounded-xl">
|
||||
<h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
|
||||
<i class="fas fa-file-code mr-2 text-purple-500"></i>
|
||||
Using Brewfile
|
||||
</h3>
|
||||
<p class="text-gray-600 dark:text-gray-400 mb-3">Add to your Brewfile:</p>
|
||||
<div class="code-block">
|
||||
<pre class="bg-gray-900 text-gray-100 p-4 pr-20 rounded-lg overflow-x-auto"><code>tap "lukaszraczylo/taps"
|
||||
<p class="note">Or declare the tap in a Brewfile:</p>
|
||||
<div class="cmd">
|
||||
<pre><code>tap "lukaszraczylo/taps"
|
||||
<!-- BREWFILE_START -->
|
||||
cask "harness-sync"
|
||||
cask "kportal"
|
||||
cask "lolcathost"
|
||||
cask "semver-generator"</code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
cask "mcp-filepuff"
|
||||
cask "readitall"
|
||||
cask "semver-generator"
|
||||
<!-- BREWFILE_END --></code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="py-8 bg-white dark:bg-gray-900 border-t border-gray-200 dark:border-gray-800 theme-transition">
|
||||
<div class="max-w-6xl mx-auto px-4 sm:px-6">
|
||||
<div class="flex flex-col md:flex-row justify-between items-center gap-4">
|
||||
<div class="flex items-center gap-2">
|
||||
<i class="fas fa-beer text-2xl text-amber-500"></i>
|
||||
<span class="text-xl font-bold gradient-text">brew-taps</span>
|
||||
</div>
|
||||
<div class="flex items-center space-x-6">
|
||||
<a href="https://github.com/lukaszraczylo/homebrew-taps" class="text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100">
|
||||
<i class="fab fa-github text-xl"></i>
|
||||
</a>
|
||||
<a href="https://github.com/lukaszraczylo/homebrew-taps/issues" class="text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 text-sm">Issues</a>
|
||||
</div>
|
||||
<p class="text-gray-500 dark:text-gray-400 text-sm">MIT License</p>
|
||||
</div>
|
||||
<footer>
|
||||
<div class="wrap">
|
||||
<span>MIT License</span>
|
||||
<span>
|
||||
<a href="https://github.com/lukaszraczylo/homebrew-taps">Source</a>
|
||||
<a href="https://github.com/lukaszraczylo/homebrew-taps/issues">Issues</a>
|
||||
<a href="https://docs.brew.sh">Homebrew docs</a>
|
||||
</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
// Copy code to clipboard
|
||||
function copyCode(button) {
|
||||
const codeBlock = button.parentElement.querySelector('code');
|
||||
const text = codeBlock.textContent;
|
||||
|
||||
navigator.clipboard.writeText(text).then(() => {
|
||||
button.classList.add('copied');
|
||||
button.innerHTML = '<i class="fas fa-check"></i>';
|
||||
|
||||
setTimeout(() => {
|
||||
button.classList.remove('copied');
|
||||
button.innerHTML = '<i class="fas fa-copy"></i>';
|
||||
}, 2000);
|
||||
}).catch(err => {
|
||||
console.error('Failed to copy:', err);
|
||||
});
|
||||
var text = button.parentElement.querySelector("code").textContent;
|
||||
navigator.clipboard.writeText(text).then(
|
||||
function () {
|
||||
button.classList.add("copied");
|
||||
button.textContent = "Copied";
|
||||
setTimeout(function () {
|
||||
button.classList.remove("copied");
|
||||
button.textContent = "Copy";
|
||||
}, 2000);
|
||||
},
|
||||
function (err) {
|
||||
console.error("Copy failed:", err);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// Theme toggle
|
||||
document.getElementById('theme-toggle').addEventListener('click', function() {
|
||||
if (document.documentElement.classList.contains('dark')) {
|
||||
document.documentElement.classList.remove('dark');
|
||||
localStorage.theme = 'light';
|
||||
} else {
|
||||
document.documentElement.classList.add('dark');
|
||||
localStorage.theme = 'dark';
|
||||
}
|
||||
});
|
||||
|
||||
// Mobile menu toggle
|
||||
document.getElementById('mobile-menu-toggle').addEventListener('click', function() {
|
||||
const menu = document.getElementById('mobile-menu');
|
||||
const openIcon = document.getElementById('menu-open-icon');
|
||||
const closeIcon = document.getElementById('menu-close-icon');
|
||||
|
||||
menu.classList.toggle('hidden');
|
||||
openIcon.classList.toggle('hidden');
|
||||
closeIcon.classList.toggle('hidden');
|
||||
});
|
||||
|
||||
// Close mobile menu on link click
|
||||
document.querySelectorAll('#mobile-menu a').forEach(link => {
|
||||
link.addEventListener('click', function() {
|
||||
document.getElementById('mobile-menu').classList.add('hidden');
|
||||
document.getElementById('menu-open-icon').classList.remove('hidden');
|
||||
document.getElementById('menu-close-icon').classList.add('hidden');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
# GoReleaser writes the quarantine hook as a postflight block, which Homebrew rejects
|
||||
# with Cask/InstallSteps. Rewrite it to postflight_steps.
|
||||
set -euo pipefail
|
||||
|
||||
for cask in Casks/*.rb
|
||||
do
|
||||
perl -0pi -e 's| postflight do\n if OS\.mac\?\n system_command "/usr/bin/xattr",\n\s+args: \["-dr", "com\.apple\.quarantine", "#\{staged_path\}/([\w-]+)"\]\n end\n end\n| postflight_steps do\n on_macos do\n run "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "{{staged_path}}/$1"]\n end\n end\n|' "${cask}"
|
||||
done
|
||||
+55
-113
@@ -11,144 +11,84 @@ CASKS_DIR="${ROOT_DIR}/Casks"
|
||||
DOCS_DIR="${ROOT_DIR}/docs"
|
||||
INDEX_FILE="${DOCS_DIR}/index.html"
|
||||
TEMP_FILE="${DOCS_DIR}/casks_temp.html"
|
||||
BREWFILE_TEMP="${DOCS_DIR}/brewfile_temp.txt"
|
||||
|
||||
# Get metadata for a cask
|
||||
get_icon() {
|
||||
case "$1" in
|
||||
kportal) echo "fa-ship" ;;
|
||||
lolcathost) echo "fa-cat" ;;
|
||||
semver-generator) echo "fa-code-branch" ;;
|
||||
graphql-monitoring-proxy) echo "fa-chart-line" ;;
|
||||
*) echo "fa-cube" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
get_colors() {
|
||||
case "$1" in
|
||||
kportal) echo "from-blue-500 to-purple-600" ;;
|
||||
lolcathost) echo "from-pink-500 to-purple-600" ;;
|
||||
semver-generator) echo "from-emerald-500 to-teal-600" ;;
|
||||
graphql-monitoring-proxy) echo "from-rose-500 to-orange-600" ;;
|
||||
*) echo "from-gray-500 to-gray-600" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
get_tag1() {
|
||||
# Per-cask metadata: category label and optional docs site
|
||||
get_category() {
|
||||
case "$1" in
|
||||
kportal) echo "Kubernetes" ;;
|
||||
lolcathost) echo "Hosts" ;;
|
||||
semver-generator) echo "Git" ;;
|
||||
graphql-monitoring-proxy) echo "GraphQL" ;;
|
||||
harness-sync) echo "LLM" ;;
|
||||
readitall) echo "MCP" ;;
|
||||
mcp-filepuff) echo "MCP" ;;
|
||||
*) echo "CLI" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
get_tag1_color() {
|
||||
case "$1" in
|
||||
kportal) echo "blue" ;;
|
||||
lolcathost) echo "pink" ;;
|
||||
semver-generator) echo "emerald" ;;
|
||||
graphql-monitoring-proxy) echo "rose" ;;
|
||||
*) echo "gray" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
get_tag2() {
|
||||
case "$1" in
|
||||
kportal) echo "TUI" ;;
|
||||
lolcathost) echo "TUI" ;;
|
||||
semver-generator) echo "Versioning" ;;
|
||||
graphql-monitoring-proxy) echo "Monitoring" ;;
|
||||
*) echo "" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
get_tag2_color() {
|
||||
case "$1" in
|
||||
kportal) echo "purple" ;;
|
||||
lolcathost) echo "purple" ;;
|
||||
semver-generator) echo "teal" ;;
|
||||
graphql-monitoring-proxy) echo "orange" ;;
|
||||
*) echo "gray" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
get_docs_url() {
|
||||
case "$1" in
|
||||
kportal) echo "https://kportal.raczylo.com" ;;
|
||||
lolcathost) echo "https://lolcathost.raczylo.com" ;;
|
||||
graphql-monitoring-proxy) echo "https://graphql-monitoring-proxy.raczylo.com" ;;
|
||||
*) echo "" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Cask name differs from the GitHub repository name for some projects
|
||||
get_repo() {
|
||||
case "$1" in
|
||||
readitall) echo "mcp-readitall" ;;
|
||||
mcp-filepuff) echo "filepuff-mcp" ;;
|
||||
*) echo "$1" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
html_escape() {
|
||||
local s="$1"
|
||||
s="${s//&/&}"
|
||||
s="${s//</<}"
|
||||
s="${s//>/>}"
|
||||
echo "${s}"
|
||||
}
|
||||
|
||||
generate_cask_card() {
|
||||
local name="$1"
|
||||
local version="$2"
|
||||
local desc="$3"
|
||||
local desc
|
||||
desc=$(html_escape "$3")
|
||||
|
||||
local icon
|
||||
icon=$(get_icon "${name}")
|
||||
local colors
|
||||
colors=$(get_colors "${name}")
|
||||
local tag1
|
||||
tag1=$(get_tag1 "${name}")
|
||||
local tag1_color
|
||||
tag1_color=$(get_tag1_color "${name}")
|
||||
local tag2
|
||||
tag2=$(get_tag2 "${name}")
|
||||
local tag2_color
|
||||
tag2_color=$(get_tag2_color "${name}")
|
||||
local category
|
||||
category=$(get_category "${name}")
|
||||
local docs_url
|
||||
docs_url=$(get_docs_url "${name}")
|
||||
local github_url="https://github.com/lukaszraczylo/${name}"
|
||||
local repo
|
||||
repo=$(get_repo "${name}")
|
||||
local github_url="https://github.com/lukaszraczylo/${repo}"
|
||||
|
||||
local tags_html="<span class=\"px-2 py-1 bg-${tag1_color}-100 dark:bg-${tag1_color}-900/30 text-${tag1_color}-700 dark:text-${tag1_color}-300 rounded text-xs\">${tag1}</span>"
|
||||
if [[ -n "${tag2}" ]]
|
||||
then
|
||||
tags_html="${tags_html}
|
||||
<span class=\"px-2 py-1 bg-${tag2_color}-100 dark:bg-${tag2_color}-900/30 text-${tag2_color}-700 dark:text-${tag2_color}-300 rounded text-xs\">${tag2}</span>"
|
||||
fi
|
||||
|
||||
local buttons_html=""
|
||||
local links_html=""
|
||||
if [[ -n "${docs_url}" ]]
|
||||
then
|
||||
buttons_html="<a href=\"${docs_url}\" target=\"_blank\" class=\"flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors\">
|
||||
<i class=\"fas fa-book mr-1\"></i>Docs
|
||||
</a>
|
||||
<a href=\"${github_url}\" target=\"_blank\" class=\"flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors\">
|
||||
<i class=\"fab fa-github mr-1\"></i>GitHub
|
||||
</a>"
|
||||
else
|
||||
buttons_html="<a href=\"${github_url}\" target=\"_blank\" class=\"flex-1 text-center px-3 py-2 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium transition-colors\">
|
||||
<i class=\"fab fa-github mr-1\"></i>GitHub
|
||||
</a>"
|
||||
links_html="<a href=\"${docs_url}\">Docs</a>
|
||||
"
|
||||
fi
|
||||
links_html="${links_html}<a href=\"${github_url}\">GitHub</a>"
|
||||
|
||||
cat <<CARD_EOF
|
||||
<!-- ${name} -->
|
||||
<div class="glass p-6 rounded-xl group hover:shadow-lg transition-all duration-300">
|
||||
<div class="flex items-start gap-4 mb-4">
|
||||
<div class="w-12 h-12 rounded-xl bg-gradient-to-br ${colors} flex items-center justify-center flex-shrink-0 group-hover:scale-110 transition-transform duration-300">
|
||||
<i class="fas ${icon} text-white text-lg"></i>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<h3 class="font-bold text-gray-900 dark:text-gray-100 text-lg">${name}</h3>
|
||||
<span class="text-xs text-gray-500 dark:text-gray-400">v${version}</span>
|
||||
</div>
|
||||
<li class="project">
|
||||
<div class="project-head">
|
||||
<h3>${name}</h3>
|
||||
<span class="meta">v${version} · ${category}</span>
|
||||
<span class="project-links">
|
||||
${links_html}
|
||||
</span>
|
||||
</div>
|
||||
<p class="text-sm text-gray-600 dark:text-gray-400 mb-4">${desc}</p>
|
||||
<div class="flex flex-wrap gap-2 mb-4">
|
||||
${tags_html}
|
||||
<p>${desc}</p>
|
||||
<div class="cmd">
|
||||
<pre><code>brew install --cask lukaszraczylo/taps/${name}</code></pre>
|
||||
<button class="copy-btn" type="button" onclick="copyCode(this)">Copy</button>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
${buttons_html}
|
||||
</div>
|
||||
<div class="code-block mt-4">
|
||||
<pre class="bg-gray-900 text-gray-100 p-3 pr-16 rounded-lg text-xs overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/${name}</code></pre>
|
||||
<button class="copy-btn" onclick="copyCode(this)" title="Copy to clipboard"><i class="fas fa-copy"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
CARD_EOF
|
||||
}
|
||||
@@ -164,6 +104,7 @@ fi
|
||||
|
||||
# Generate casks HTML to temp file
|
||||
echo "" >"${TEMP_FILE}"
|
||||
: >"${BREWFILE_TEMP}"
|
||||
|
||||
for cask_file in "${CASKS_DIR}"/*.rb
|
||||
do
|
||||
@@ -174,21 +115,22 @@ do
|
||||
desc=$(grep -m1 'desc "' "${cask_file}" | sed 's/.*desc "\([^"]*\)".*/\1/' 2>/dev/null || echo "A Homebrew cask")
|
||||
|
||||
generate_cask_card "${name}" "${version}" "${desc}" >>"${TEMP_FILE}"
|
||||
echo "cask \"${name}\"" >>"${BREWFILE_TEMP}"
|
||||
fi
|
||||
done
|
||||
|
||||
# Now rebuild the index.html with the new casks content
|
||||
# Read and process the file
|
||||
# Rebuild index.html: casks between CASKS_* markers, Brewfile lines between BREWFILE_* markers
|
||||
{
|
||||
# Print everything up to and including CASKS_START
|
||||
sed -n '1,/<!-- CASKS_START -->/p' "${INDEX_FILE}"
|
||||
# Print the generated casks
|
||||
cat "${TEMP_FILE}"
|
||||
# Print everything from CASKS_END onwards
|
||||
sed -n '/<!-- CASKS_END -->/,$p' "${INDEX_FILE}"
|
||||
} >"${INDEX_FILE}.new"
|
||||
} | awk -v bf="${BREWFILE_TEMP}" '
|
||||
/<!-- BREWFILE_START -->/ { print; while ((getline line < bf) > 0) print line; skip = 1; next }
|
||||
/<!-- BREWFILE_END -->/ { skip = 0 }
|
||||
!skip { print }
|
||||
' >"${INDEX_FILE}.new"
|
||||
|
||||
mv "${INDEX_FILE}.new" "${INDEX_FILE}"
|
||||
rm -f "${TEMP_FILE}"
|
||||
rm -f "${TEMP_FILE}" "${BREWFILE_TEMP}"
|
||||
|
||||
echo "Documentation updated successfully!"
|
||||
|
||||
Reference in New Issue
Block a user