2015-07-18 14:07:13 +02:00
|
|
|
|
# How to Create and Maintain a Tap
|
2017-01-04 16:16:00 -06:00
|
|
|
|
|
2015-07-18 14:07:13 +02:00
|
|
|
|
Taps are external sources of Homebrew formulae and/or external commands. They
|
|
|
|
|
can be created by anyone to provide their own formulae and/or external commands
|
|
|
|
|
to any Homebrew user.
|
|
|
|
|
|
|
|
|
|
## Creating a tap
|
2017-03-18 17:45:12 -04:00
|
|
|
|
A tap is usually a Git repository available online, but you can use anything as
|
|
|
|
|
long as it’s a protocol that Git understands, or even just a directory with
|
2015-07-18 14:07:13 +02:00
|
|
|
|
files in it.
|
|
|
|
|
If hosted on GitHub, we recommend that the repository’s name start with
|
|
|
|
|
`homebrew-`.
|
|
|
|
|
|
|
|
|
|
Tap formulae follow the same format as the core’s ones, and can be added at the
|
|
|
|
|
repository’s root, or under `Formula` or `HomebrewFormula` subdirectories. We
|
|
|
|
|
recommend the latter options because it makes the repository organisation
|
|
|
|
|
easier to grasp, and top-level files are not mixed with formulae.
|
|
|
|
|
|
2018-03-31 13:42:33 +01:00
|
|
|
|
See [homebrew/core](https://github.com/Homebrew/homebrew-core) for an example of
|
2015-07-18 14:07:13 +02:00
|
|
|
|
a tap with a `Formula` subdirectory.
|
|
|
|
|
|
|
|
|
|
### Installing
|
|
|
|
|
If it’s on GitHub, users can install any of your formulae with
|
|
|
|
|
`brew install user/repo/formula`. Homebrew will automatically add your
|
|
|
|
|
`github.com/user/homebrew-repo` tap before installing the formula.
|
|
|
|
|
`user/repo/formula` points to the `github.com/user/homebrew-repo/**/formula.rb`
|
|
|
|
|
file here.
|
|
|
|
|
|
|
|
|
|
If they want to get your tap without installing any formula at the same time,
|
2018-02-23 19:39:19 +00:00
|
|
|
|
users can add it with the [`brew tap` command](Taps.md).
|
2015-07-18 14:07:13 +02:00
|
|
|
|
|
|
|
|
|
If it’s on GitHub, they can use `brew tap user/repo`, where `user` is your
|
|
|
|
|
GitHub username and `homebrew-repo` your repository.
|
|
|
|
|
|
2017-03-25 22:53:33 -04:00
|
|
|
|
If it’s hosted outside of GitHub, they have to use `brew tap user/repo <URL>`,
|
|
|
|
|
where `user` and `repo` will be used to refer to your tap and `<URL>` is your
|
2015-07-18 14:07:13 +02:00
|
|
|
|
Git clone URL.
|
|
|
|
|
|
|
|
|
|
Users can then install your formulae either with `brew install foo` if there’s
|
|
|
|
|
no core formula with the same name, or with `brew install user/repo/foo` to
|
|
|
|
|
avoid conflicts.
|
|
|
|
|
|
|
|
|
|
## Maintaining a tap
|
2017-03-18 17:45:12 -04:00
|
|
|
|
A tap is just a Git repository so you don’t have to do anything specific when
|
2017-03-17 22:53:35 +01:00
|
|
|
|
making modifications, apart from committing and pushing your changes.
|
2015-07-18 14:07:13 +02:00
|
|
|
|
|
|
|
|
|
### Updating
|
2017-03-17 00:19:58 +01:00
|
|
|
|
Once your tap is installed, Homebrew will update it each time a user runs
|
|
|
|
|
`brew update`. Outdated formulae will be upgraded when a user runs
|
2015-07-18 14:07:13 +02:00
|
|
|
|
`brew upgrade`, like core formulae.
|
|
|
|
|
|
|
|
|
|
## External commands
|
|
|
|
|
You can provide your tap users with custom `brew` commands by adding them in a
|
2018-02-23 19:39:19 +00:00
|
|
|
|
`cmd` subdirectory. [Read more on external commands](External-Commands.md).
|
2015-07-18 14:07:13 +02:00
|
|
|
|
|
2015-10-31 04:31:13 +01:00
|
|
|
|
See [homebrew/aliases](https://github.com/Homebrew/homebrew-aliases) for an
|
2015-07-18 14:07:13 +02:00
|
|
|
|
example of a tap with external commands.
|