You've already forked homebrew-objdiff
Initial commit
This commit is contained in:
88
.gitea/workflows/update-formula.yml
Normal file
88
.gitea/workflows/update-formula.yml
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
name: Update Formulas
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 6 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout tap
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Check for new release
|
||||||
|
id: check
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
RELEASE=$(curl -sf \
|
||||||
|
-H "Accept: application/vnd.github+json" \
|
||||||
|
https://api.github.com/repos/encounter/objdiff/releases/latest)
|
||||||
|
|
||||||
|
VERSION=$(echo "$RELEASE" | jq -r '.tag_name' | sed 's/^v//')
|
||||||
|
CURRENT=$(grep 'version "' Formula/objdiff-cli.rb | head -1 | sed 's/.*version "\([^"]*\)".*/\1/')
|
||||||
|
|
||||||
|
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "current=$CURRENT" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
if [ "$VERSION" = "$CURRENT" ]; then
|
||||||
|
echo "changed=false" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Already on $VERSION, nothing to do."
|
||||||
|
else
|
||||||
|
echo "changed=true" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Updating $CURRENT -> $VERSION"
|
||||||
|
echo "$RELEASE" > /tmp/release.json
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Update formulas
|
||||||
|
if: steps.check.outputs.changed == 'true'
|
||||||
|
run: |
|
||||||
|
VERSION="${{ steps.check.outputs.version }}"
|
||||||
|
|
||||||
|
# Pull sha256 from the digest field GitHub already provides in the API —
|
||||||
|
# no need to download any binaries.
|
||||||
|
extract_sha() {
|
||||||
|
jq -r --arg name "\$1" \
|
||||||
|
'.assets[] | select(.name == $name) | .digest | ltrimstr("sha256:")' \
|
||||||
|
/tmp/release.json
|
||||||
|
}
|
||||||
|
|
||||||
|
# Replace sha256 line identified by the trailing comment (the binary name).
|
||||||
|
update_sha() {
|
||||||
|
local file="\$1" name="\$2"
|
||||||
|
local sha
|
||||||
|
sha=$$(extract_sha "$$name")
|
||||||
|
sed -i "s|sha256 \"[a-f0-9]*\" # $$name|sha256 \"$$sha\" # $$name|" "$$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Bump version in both formulas (url lines use #{version} interpolation,
|
||||||
|
# so they update automatically)
|
||||||
|
sed -i "s|version \"[^\"]*\"|version \"$VERSION\"|" Formula/objdiff-cli.rb
|
||||||
|
sed -i "s|version \"[^\"]*\"|version \"$VERSION\"|" Formula/objdiff.rb
|
||||||
|
|
||||||
|
# Update sha256s — CLI
|
||||||
|
update_sha Formula/objdiff-cli.rb objdiff-cli-macos-arm64
|
||||||
|
update_sha Formula/objdiff-cli.rb objdiff-cli-macos-x86_64
|
||||||
|
update_sha Formula/objdiff-cli.rb objdiff-cli-linux-aarch64
|
||||||
|
update_sha Formula/objdiff-cli.rb objdiff-cli-linux-x86_64
|
||||||
|
|
||||||
|
# Update sha256s — GUI
|
||||||
|
update_sha Formula/objdiff.rb objdiff-macos-arm64
|
||||||
|
update_sha Formula/objdiff.rb objdiff-macos-x86_64
|
||||||
|
update_sha Formula/objdiff.rb objdiff-linux-x86_64
|
||||||
|
|
||||||
|
- name: Commit and push
|
||||||
|
if: steps.check.outputs.changed == 'true'
|
||||||
|
env:
|
||||||
|
TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
git config user.name "gitea-actions[bot]"
|
||||||
|
git config user.email "gitea-actions[bot]@noreply"
|
||||||
|
# Re-point origin to include the token so push is authenticated.
|
||||||
|
# GITHUB_SERVER_URL in Gitea Actions is your instance URL.
|
||||||
|
git remote set-url origin \
|
||||||
|
"https://x-access-token:$${TOKEN}@$${GITHUB_SERVER_URL#https://}/${GITHUB_REPOSITORY}.git"
|
||||||
|
git add Formula/
|
||||||
|
git commit -m "chore: bump objdiff to v${{ steps.check.outputs.version }}"
|
||||||
|
git push
|
||||||
42
Formula/objdiff-cli.rb
Normal file
42
Formula/objdiff-cli.rb
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
class ObjdiffCli < Formula
|
||||||
|
desc "CLI for diffing object files in decompilation projects"
|
||||||
|
homepage "https://github.com/encounter/objdiff"
|
||||||
|
version "3.7.1"
|
||||||
|
license "MIT OR Apache-2.0"
|
||||||
|
|
||||||
|
on_macos do
|
||||||
|
on_arm do
|
||||||
|
url "https://github.com/encounter/objdiff/releases/download/v#{version}/objdiff-cli-macos-arm64"
|
||||||
|
sha256 "acd0f01e40319c862c84effd9f744a6ccfeec10074cbc89ef232d96d333ab528" # objdiff-cli-macos-arm64
|
||||||
|
end
|
||||||
|
on_intel do
|
||||||
|
url "https://github.com/encounter/objdiff/releases/download/v#{version}/objdiff-cli-macos-x86_64"
|
||||||
|
sha256 "4b0f9aed00d5c71a9ea46e97c7887236dd9e5cc827c06d73c6ebd220fd4396fa" # objdiff-cli-macos-x86_64
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
on_linux do
|
||||||
|
on_arm do
|
||||||
|
url "https://github.com/encounter/objdiff/releases/download/v#{version}/objdiff-cli-linux-aarch64"
|
||||||
|
sha256 "5b0a3ada0a1ecfca93114cfb36f4caa1587f767923eb3643b24b6aa9a65d1f5d" # objdiff-cli-linux-aarch64
|
||||||
|
end
|
||||||
|
on_intel do
|
||||||
|
url "https://github.com/encounter/objdiff/releases/download/v#{version}/objdiff-cli-linux-x86_64"
|
||||||
|
sha256 "40d856da01e0a676c0f33af534e562f098cd50e45ecb64f3b346418c7b264ae6" # objdiff-cli-linux-x86_64
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def install
|
||||||
|
if OS.mac?
|
||||||
|
arch = Hardware::CPU.arm? ? "arm64" : "x86_64"
|
||||||
|
bin.install "objdiff-cli-macos-#{arch}" => "objdiff-cli"
|
||||||
|
else
|
||||||
|
arch = Hardware::CPU.arm? ? "aarch64" : "x86_64"
|
||||||
|
bin.install "objdiff-cli-linux-#{arch}" => "objdiff-cli"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
test do
|
||||||
|
system "#{bin}/objdiff-cli", "--version"
|
||||||
|
end
|
||||||
|
end
|
||||||
38
Formula/objdiff.rb
Normal file
38
Formula/objdiff.rb
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
class Objdiff < Formula
|
||||||
|
desc "Visual diff tool for object files in decompilation projects"
|
||||||
|
homepage "https://github.com/encounter/objdiff"
|
||||||
|
version "3.7.1"
|
||||||
|
license "MIT OR Apache-2.0"
|
||||||
|
|
||||||
|
on_macos do
|
||||||
|
on_arm do
|
||||||
|
url "https://github.com/encounter/objdiff/releases/download/v#{version}/objdiff-macos-arm64"
|
||||||
|
sha256 "fcb2492d4f123e9c43b83c5ea0acaf079b6dc92b3e53e1d0307f6664fe803686" # objdiff-macos-arm64
|
||||||
|
end
|
||||||
|
on_intel do
|
||||||
|
url "https://github.com/encounter/objdiff/releases/download/v#{version}/objdiff-macos-x86_64"
|
||||||
|
sha256 "a1e80f9c5494adb604d2be61361196d7f2cc9415dcf3a05d0cc4a0529e6eb6fb" # objdiff-macos-x86_64
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
on_linux do
|
||||||
|
on_intel do
|
||||||
|
url "https://github.com/encounter/objdiff/releases/download/v#{version}/objdiff-linux-x86_64"
|
||||||
|
sha256 "2e904f63258fcee5f98e6d36594a2fcea250caacfe97c49b4544470d6805aaaf" # objdiff-linux-x86_64
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def install
|
||||||
|
if OS.mac?
|
||||||
|
arch = Hardware::CPU.arm? ? "arm64" : "x86_64"
|
||||||
|
bin.install "objdiff-macos-#{arch}" => "objdiff"
|
||||||
|
else
|
||||||
|
bin.install "objdiff-linux-x86_64" => "objdiff"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
test do
|
||||||
|
# GUI won't run headless; just verify the binary exists and is executable
|
||||||
|
assert_predicate bin/"objdiff", :exist?
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user