Henchman

UNKNOWN


License
CC-BY-NC-SA-2.5
Install
pip install Henchman==0.1

Documentation

# Cobra Commander - Henchman
You mindless husk, you.


## Snakefiles
A snakefile is what is used to configure and run a Henchman build. A snakefile can be any arbitrary file or executable so long as it outputs valid JSON to stdout when it is invoked.

There is only one key/value that __must__ be in your snakfile JSON;

- `build`: an array of strings containing the steps required to build your project. These are executed serially.

However there are also a bunch of other optional properties that you can set in your snakefile to achieve different outcomes, here are a few;

- `environment`: an object whose keys/values are environment variables that should be set prior to any `build` steps being invoked.
- `hooks`:
  - `before_build`
  - `after_build`
  - `after_passing`
  - `after_failing`


## Extensions (notes for future spec)

Extensions come a in a bunch of different flavours, usually depending on the function that they provide.

Extensions may add extra abilities and functionality at certain registration points within the build process (eg; post build, during hooks, etc.)

If an extension needs configuration or params before being invoked at its registration point they can be passed in the snakefile as such;

    'hooks': {
      'before_build':[
        ['my_extension', ['args'], {'kwargs':'foo'}],
        ['my_other_extension', ['args']],
        ['etc']
      ]
    }