Grump

Poor man's build system.

How does it work?

Create a Grumpfile and define your project. Grumpfiles 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.