Brew Plugin
Automate the creation of Homebrew formulae. This plugin can be use with any other package manager plugin.
NOTE: This plugin does not work in
lerna
monorepos that useindependent
versioning.
Installation
This plugin is not included with the auto
CLI installed via NPM. To install:
npm i --save-dev @auto-it/brew # or yarn add -D @auto-it/brew
npm i --save-dev @auto-it/brew # or yarn add -D @auto-it/brew
Usage
To use this plugin you will need to add the required configuration and a template file.
executable
- REQUIRED: The executable to create a formula forname
- REQUIRED: The name of the formula to createformula
- A path to the formula template. Default is './formula-template.rb'
{ "plugins": [ [ "brew", { "executable": "path/to/some/executable", "name": "name-of-formula", "formula": "path/to/formula/template" } ] ] }
{ "plugins": [ [ "brew", { "executable": "path/to/some/executable", "name": "name-of-formula", "formula": "path/to/formula/template" } ] ] }
Create a template name ./formula-template.rb
at the root of the project (or use the formula
option to customize the location)/
The template file must be a valid homebrew ruby file.
auto
will replace the following tokens in the template file:
$VERSION
- The version being published$SHA
- The sha of the executable being included in the formula
Here is the template auto
uses to publish it's own brew
formula:
class Auto < Formula desc "Generate releases based on semantic version labels on pull requests." homepage "https://intuit.github.io/auto/home.html" url "https://github.com/intuit/auto/releases/download/$VERSION/auto-macos.gz" version "$VERSION" sha256 "$SHA" def install libexec.install Dir["*"] bin.install libexec/"auto-macos" mv bin/"auto-macos", bin/"auto" end test do system bin/"auto", "--version" end end
class Auto < Formula desc "Generate releases based on semantic version labels on pull requests." homepage "https://intuit.github.io/auto/home.html" url "https://github.com/intuit/auto/releases/download/$VERSION/auto-macos.gz" version "$VERSION" sha256 "$SHA" def install libexec.install Dir["*"] bin.install libexec/"auto-macos" mv bin/"auto-macos", bin/"auto" end test do system bin/"auto", "--version" end end
Multiple Formulae
You can also use this to create multiple brew
formulae.
{ "plugins": [ [ "brew", [ { "executable": "path/to/some/executable", "name": "name-of-formula", "formula": "path/to/formula/template" }, { "executable": "path/to/another/executable", "name": "another-formula", "formula": "path/to/formula/another" } ] ] ] }
{ "plugins": [ [ "brew", [ { "executable": "path/to/some/executable", "name": "name-of-formula", "formula": "path/to/formula/template" }, { "executable": "path/to/another/executable", "name": "another-formula", "formula": "path/to/formula/another" } ] ] ] }