Homebrew and Cask have made it their life's work to automate the installation of various software for Mac OS X developers, either via Brew formulas or Casks. Their hard work inspired me to create kegger, which is designed to automate the installation of more than 1 cask at a time. You may think to yourself,
You can already do this with cask by passing it several casks such as
brew cask install alfred dropbox
, what makes this any easier?
The simple answer is nothing. I have several machines, work, personal, server, etc,. I wanted to be able to install different software without having to remember what was that one line. Or better yet, I wanted to group the software by its purpose so that I could install them by "categories". Or even better, I could maintain a list of software to update in its own repository and kegger would update and install anything that was new. Ideally this is meant to run alongside your initial machine configuration or setup, such as what I'm doing with eighth-inning.
- Git and Github account
- Homebrew (for package installation of the following)
- jq (for JSON to bash manipulation)
- roundup (for testing, only required if you are contributing)
kegger(1) is a shell script, so installation is simple. Download, extract and copy the script in the bin
directory over to the /usr/local/bin
directory and make sure it's in your $PATH
. The man page, man kegger
, can be installed by copying over the kegger.1
file to /usr/share/man/man1
.
$ bash -c "$(curl -#fL raw.github.com/iamnewton/kegger/go/install)"
N.B. - using the one-line installation will download and install all of the dependencies, including the man page.
$ kegger [options] <github_gist_id>
Flag | Meaning |
---|---|
-h, --help |
Print out help text |
-v, --version |
Print out version |
When passing kegger(1)
a Gist ID, there is a specific format that should be adhered to in order to ensure the script works correctly; I've named this format 'keg'. While a keg file is simply a text file with the extension .keg
, it doesn't have to be. What does have to happen? Each file stored on Github's Gist platform should have a single cask on each line. If you want to see an example, I have created 4 different ones that I currently use, listed below. If you need to find the name of a Cask, then you can run brew cask search <term>
.
Suggestions and contributions are always welcome. If you'd like to see a new keg and don't feel comfortable creating your own, you can get involved by either creating an issue, or forking the code and creating a pull request. For more information on how to work with the code, please see the CONTRIBUTING.md documentation.