qo

finally, a task runner designed for insect people

qo

A task runner for insect people.

npm install qo

Write a file qo.js:

task('hi', function () {
  console.log('hi!');
});

Then

# qo hi
hi!
task('hi', function (argsoptions) {
  console.log("hi " + options.name)"
});

Then

# qo hi --name jack
hi jack
task('hi', function (args) {
  console.log("hi " + args.join(''));
});

Then

# qo hi jack jill jesse
hi jack, jill, jesse

If you return a promise, and it's rejected, then qo will print the error exit with 1.

ncp = require 'ncp'
var fs = require('fs-promise');
 
task('print', function (args) {
  return fs.readFile(args[0], 'utf-8').then(function (contents) {
    console.log(contents);
  });
});

Then

# qo print some-file.txt
Error: ENOENT, open 'asdf'
    at Error (native)
task('hi', {desc: 'says hi'}, function () {
  console.log('hi');
});

Then

# qo
tasks:
 
    hi, says hi

You can also put descriptive arguments into the task name:

task('hi <name>', {desc: 'says hi to <name>'}, function (args) {
  console.log('hi ' + args[0]);
});

Then

# qo
tasks:
 
    hi <name>, says hi to <name>

pogoscript

you can write a qo.pogo file too. Pogoscript happens to be very useful for writing heavily asynchronous code, and great for little scripts that get things done.