Homebrew formula¶
PptxDiff has a Homebrew formula — an alternative to npm install -g pptxdiff for anyone who prefers brew install. It doesn't reimplement anything: the formula packages the exact same published npm tarball, so brew install and npm install -g produce the identical pptxdiff binary.
Status¶
Not yet published to a real Homebrew tap — brew install pptxdiff doesn't work yet. Two things stand between here and there:
- A dedicated
sugatoray/homebrew-pptxdifftap repository needs to exist. - This repo needs a
HOMEBREW_TAP_TOKENsecret so CI can push updates to it.
Both are deliberate manual steps (creating a public repo and minting a cross-repo credential aren't things automated tooling should do unprompted) — see the formula's own README.md for the exact setup checklist.
Install today¶
Works right now, no tap required — install directly from the formula file:
brew install --formula https://raw.githubusercontent.com/sugatoray/pptxdiff/HEAD/src/packages/pptxdiff-brew/Formula/pptxdiff.rb
pptxdiff
Or from a local clone of the repo:
git clone https://github.com/sugatoray/pptxdiff.git
cd pptxdiff
brew install --formula src/packages/pptxdiff-brew/Formula/pptxdiff.rb
pptxdiff
Once the tap exists, installing will simplify to the familiar two-liner:
What the formula does¶
- Downloads the published
pptxdiffnpm tarball for a pinned version, verified against a pinnedsha256. depends_on "node"— the only real runtime requirement.bin/cli.jsis a plain Node script overnode:http/node:fs/node:path/node:child_process, no native addons, no other dependencies to resolve (see Architecture for why the app itself has zero runtime deps).- Installs into Homebrew's
libexecand symlinks the onepptxdiffbin entry — noresourceblocks needed. - A real
test doblock starts the installed server, curls it, and asserts actual HTML comes back — not just that the formula file parses.
Running pptxdiff behaves identically regardless of how it was installed: a local static server on an OS-assigned loopback port, your default browser opened to it, nothing uploaded anywhere. See the CLI reference for the full behavior.
Keeping the formula current¶
A CI workflow (.github/workflows/sync-homebrew-tap.yml) keeps the formula's version pin current with npm automatically, and — once the tap repo exists — pushes the formula plus this package's README.md/CHANGELOG.md/LICENSE into it as a pull request. It runs on a manual trigger (anytime) and a weekly schedule (as a drift-catching safety net), and includes a real brew audit/brew install/brew test pass on a macOS GitHub Actions runner — genuine Homebrew verification, not just a syntax check.
Source¶
The formula lives in this repository at src/packages/pptxdiff-brew/ — see its own README.md for the full maintainer-facing story (version-bump procedure, the sync workflow's design, and why a symlink/submodule/subtree couldn't be used instead of a CI job), and CHANGELOG.md for what's changed.