Tiny task-based module for whipping up "hookable" build scripts
Tiny task-based module for whipping up "hookable" build scripts, with the intention of being used in decorated interfaces.
npm install oblige
tasks = require('oblige')
The "root" oblige instance. Captures the events across all oblige instances.
tasks.create(name, [meta], taskfn)
Creates a new task.
meta is optional, and handles two properties (also
meta.description: defaults to an empty string.
meta.before: A string or array of string task names -
task.runwill call these tasks in sequence before running the task.
taskfn is called when running the task, and is passed a
to the first argument you should call when it's complete. If
done is passed
an error, any parent tasks will stop running.
Runs a task, calling
callback(err) when complete.
Every time a new task is created,
oblige emits it as a data event with the
task that's been loaded.
child = tasks()
Similarly to timber, you can create child task handlers - these are almost totally independent, except the "root" instance will capture events from these as well.
child = tasks('namespaced')
By supplying a string key to the function, you're returned a new instance unique to that name - use it twice in different places and you'll receive the same instance.
Take a simple task runner:
// runner.jsvar oblige =var command = processargv2taskName = processargv3if command === 'list'obligeif command === 'run'oblige
And a tasks file:
// tasks.jsvar oblige =obligeobligeoblige
You would be able to run the command and get this: