ember-cli-ajh
Version:
Command line tool for developing ambitious ember.js apps
61 lines (47 loc) • 1.41 kB
JavaScript
var Parser = require('../')
var etoa = require('events-to-array')
var util = require('util')
var args = process.argv.slice(2)
var json = null
args.forEach(function (arg, i) {
if (arg === '-j') {
json = args[i + 1] || 2
} else {
var m = arg.match(/^--json(?:=([0-9]+))$/)
if (m)
json = +m[1] || args[i + 1] || 2
}
if (arg === '-h' || arg === '--help')
usage()
})
function usage () {
console.log(function () {/*
Usage:
tap-parser [-j [<indent>] | --json[=indent]]
Parses TAP data from stdin, and outputs an object representing
the data found in the TAP stream to stdout.
If there are any failures in the TAP stream, then exits with a
non-zero status code.
Data is output by default using node's `util.format()` method, but
JSON can be specified using the `-j` or `--json` flag with a number
of spaces to use as the indent (default=2).
*/}.toString().split('\n').slice(1, -1).join('\n'))
if (!process.stdin.isTTY)
process.stdin.resume()
process.exit()
}
function format (msg) {
if (json !== null)
return JSON.stringify(msg, null, +json)
else
return util.inspect(events, null, Infinity)
}
var parser = new Parser()
var events = etoa(parser, [ 'pipe', 'unpipe', 'prefinish', 'finish', 'line' ])
process.stdin.pipe(parser)
process.on('exit', function () {
console.log(format(events))
if (!parser.ok)
process.exit(1)
})