Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/boxen/boxen
Manage Mac development boxes with love (and Puppet).
https://github.com/boxen/boxen
Last synced: about 2 months ago
JSON representation
Manage Mac development boxes with love (and Puppet).
- Host: GitHub
- URL: https://github.com/boxen/boxen
- Owner: boxen
- License: mit
- Archived: true
- Created: 2012-09-30T04:28:33.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2018-03-25T21:14:19.000Z (over 6 years ago)
- Last Synced: 2024-04-14T19:46:22.348Z (7 months ago)
- Language: Ruby
- Homepage:
- Size: 374 KB
- Stars: 1,576
- Watchers: 59
- Forks: 141
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Boxen [![Build Status](https://travis-ci.org/boxen/boxen.png?branch=master)](https://travis-ci.org/boxen/boxen)
Manage Mac development boxes with love (and Puppet).
## Rules for Services
0. Run on a nonstandard port, usually default port + 1000 or 10000.
0. Install with a custom Boxen homebrew formula.
0. Suffix the Homebrew package's version, starting with `-boxen1`.
0. Run as a launchd service in the `dev` namespace, e.g.,
`dev.dnsmasq`.0. 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
0. All hooks must be in the namespace `Boxen::Hook::MyThing`.
0. All hooks must subclass from `Boxen::Hook`
0. All hooks must provide a private instance method `required_environment_variables` that returns an array with at least one entry.
0. All hooks must provide a private instance method `#call`.
## Contributing
Use the OS X system Ruby (2.0 or newer). Run `script/tests` often. Open PR's.
Use the CI.## Halp!
Use Issues or #boxen on irc.freenode.net.