!!! THIS PROJECT IS WIP AND NOT YET READY FOR PUBLIC USE !!!
Stacker: Extensible DevOps Toolbelt
Stacker is a flexible task runner with built-in configuration templating and plugin support.
It's compatible with gulp plugins.
Gulp is comprised of two core components:
- orchestrator for running tasks concurrently
- vinyl-fs for globbing and piping files
Install
Install via npm or install script.
The preferred method is the install script. This is similar to brew where
the install script clones the main git repo.
Install Script
Review install script, then...
curl -sS --tlsv1.2 https://raw.githubusercontent.com/getstacker/stacker/master/install | sh -e
Installation may take awhile and appear to freeze while installing npm modules.
This is due to a bug in npm 2.0.0 when using npm-shrinkwrap. The install script
should eventually complete even with the npm ERR! cb()
error.
NPM
It's recommended to use the install script.
npm install -g stacker
Common Install Errors
...
flags for v8 3.26.33 cached.
npm ERR! cb() never called!
StackOverflow thread and
Github issue
There's a bug in npm that should be fixed in 2.0.2. Rerunning the install script fixes the issues.
Uninstall
curl -sS --tlsv1.2 https://raw.githubusercontent.com/getstacker/stacker/master/uninstall | sh -e
Plugins
Stacker plugins are NPM modules.
Developing a Plugin
Use npm link
to add your work-in-progress plugin to stacker.
mkdir my-new-plugin
cd my-new-plugin
npm init
npm link
stacker link my-new-plugin
API
TODO
-
setup gulp processor with global injection for task, sh, etc
-
setup config parsing with stacker header support
- parse all *.stack files in project by default
- if no header, output file in same dir without the .stack extension
-
add support for injecting common header in output conf file
- support ini, bash/sh, coffeescript/javascript, ruby, etc. types ...
- or support comment syntax setting in .stack header
-
create official DSL support with jison
Credits
Stacker logo (Squares) designed by Nicholas Menghini from the Noun Project.