Skip to content

halyard-archived/boxen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inactive Project: This project is being retired since I'm shifting to use vanilla puppet instead of boxen

boxen

Build Status Coverage Status Code Quality MIT Licensed

Manage Mac development boxes with love (and Puppet).

Changes from upstream

  • Switched to CircleCI builds
  • Update dependency versions, specifically targeting Puppet 4
  • Create a GitHub token with admin:public_key access
  • Add the verbose flag if run with debug enabled

Rules for Services

  1. Run on a nonstandard port, usually default port + 1000 or 10000.

  2. Install with a custom Boxen homebrew formula.

  3. Suffix the Homebrew package's version, starting with -boxen1.

  4. Run as a launchd service in the dev namespace, e.g., dev.dnsmasq.

  5. 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.

Projects from the CLI

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.

Hooks

  1. All hooks must be in the namespace Boxen::Hook::MyThing.

  2. All hooks must subclass from Boxen::Hook

  3. All hooks must provide a private instance method required_environment_variables that returns an array with at least one entry.

  4. All hooks must provide a private instance method #call.

Contributing

Use the OS X system Ruby (1.8.7 or 2.0.0). Run script/tests often. Open PR's. Use the CI.

Halp!

Use Issues or #boxen on irc.freenode.net.

Packages

No packages published

Languages

  • Ruby 92.6%
  • C 4.7%
  • Shell 2.7%