Manage Mac development boxes with love (and Puppet).
Run on a nonstandard port, usually default port + 1000 or 10000.
Install with a custom Boxen homebrew formula.
Suffix the Homebrew package's version, starting with -boxen1
.
Run as a launchd service in the dev
namespace, e.g.,
dev.dnsmasq
.
Store config, data, and log files in
$BOXEN_HOME/{config,data,log}
. This will normally require
customization of a service's Homebrew formula.
Sometimes it's not possible to follow these rules, but try hard.
We use a totally awful hack to do from-the-cli project installs of projects. We create a file in "$BOXEN_HOME/repodir" called .projects, with a single line. That line is made up of projects separated by commas. We then read that into a Puppet fact in Puppet-land, and that checks for classes that match those project names, and includes them in the catalog.
We can't pass a FACTER_
env var because sudo has env_reset
and we can't just modify the sudoers file due to a chicken-egg problem.
All hooks must be in the namespace Boxen::Hook::MyThing
.
All hooks must subclass from Boxen::Hook
All hooks must provide a private instance method required_environment_variables
that returns an array with at least one entry.
All hooks must provide a private instance method #call
.
Use the OS X system Ruby (2.0 or newer). Run script/tests
often. Open PR's.
Use the CI.
Use Issues or #boxen on irc.freenode.net.