Grump
Poor man's build system.
How does it work?
Create a Grumpfile
and define your project. Grumpfile
s are inherited from root (/) to current directory.
Run grump (task name)
to invoke some logic. Tasks are defined in Grumpfiles. If no task name is specified "default" is used.
Grumpfile
plugin(name)
Loads plugin. Will require file "grump-#name" and will include it into current context. If "#name_plugin_setup" method exists, invokes it.
task(name, &block)
If no block is given, execute task specified by name. If block is given, define new task identified by name.
var(name, value=nil)
If value is not nil, set value for name. When value is nil, return value for name.
directory(path)
Resolve directory relative to location of Grumpfile.
Example Grumpfile
``ruby plugin :maven
maven 'io.netty', 'netty-handler', '4.0.7.Final' maven 'org.slf4j', 'slf4j-api', '1.7.5' maven 'org.msgpack', 'msgpack', '0.6.7'
var(:pwd, directory('.'))
task('build') do maven_download java_build end
task('package') do task('build') java_jar java_package end
task('default') do task('build') java_run end
``
Plugins
Plugin is a Module included into the context where Grumpfiles are resolved. Plugin defines methods, variables or anything Grumpfile can define.
Why?
Because!
License
Check the LICENSE.md file.