brew/docs/How-to-Create-and-Maintain-a-Tap.md
2016-09-20 10:41:42 +01:00

57 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# How to Create and Maintain a Tap
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
A tap is usually a git repository available online, but you can use anything as
long as its a protocol that git understands, or even just a directory with
files in it.
If hosted on GitHub, we recommend that the repositorys name start with
`homebrew-`.
Tap formulae follow the same format as the cores ones, and can be added at the
repositorys 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.
See [homebrew/tex](https://github.com/Homebrew/homebrew-tex) for an example of
a tap with a `Formula` subdirectory.
### Installing
If its 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,
users can add it with the [`brew tap` command](brew-tap.md).
If its on GitHub, they can use `brew tap user/repo`, where `user` is your
GitHub username and `homebrew-repo` your repository.
If its 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
Git clone URL.
Users can then install your formulae either with `brew install foo` if theres
no core formula with the same name, or with `brew install user/repo/foo` to
avoid conflicts.
## Maintaining a tap
A tap is just a git repository so you dont have to do anything specific when
making modifications apart from committing and pushing your changes.
### Updating
Once your tap installed, Homebrew will update it each time an user runs
`brew update`. Outdated formulae will be upgraded when an user runs
`brew upgrade`, like core formulae.
## External commands
You can provide your tap users with custom `brew` commands by adding them in a
`cmd` subdirectory. [Read more on external commands](External-Commands.md).
See [homebrew/aliases](https://github.com/Homebrew/homebrew-aliases) for an
example of a tap with external commands.