Git Product home page Git Product logo

boxen's Introduction

Boxen Build Status

Manage Mac development boxes with love (and Puppet).

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.

boxen's People

Contributors

btoews avatar calavera avatar dgoodlad avatar dieterdemeyer avatar fromonesrc avatar garrow avatar goshacmd avatar grosser avatar jacobbednarz avatar jbarnette avatar jhubert avatar josegonzalez avatar jozefizso avatar jroes avatar mastahyeti avatar mattheath avatar mikemcquaid avatar pengwynn avatar petems avatar polymetis avatar ptoomey3 avatar rafaelfranca avatar rothsa avatar salimane avatar skalnik avatar sr avatar timtim123456 avatar wallace avatar wfarr avatar ymendel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.