gnomon
Version:
Utility to annotate console logging statements with timestamps and find slow processes
46 lines (45 loc) • 1.25 kB
JavaScript
var meow = require('meow');
var usage = __USAGE__;
var intro = [
'',
'## Usage',
'',
'Use UNIX (or DOS) pipes to pipe the stdout of any command through gnomon.',
'',
' npm test | gnomon',
'',
'Use command-line options to adjust gnomon\'s behavior.',
'',
' any-command-to-be-timed | gnomon --type=elapsed-total --high=8.0',
'',
''
];
var cli = meow(intro.join('\n') + usage, {
string: ['format','type'],
boolean: ['ignore-blank', 'ignoreBlank'],
alias: {
'format': 'f',
'type': 't',
'ignoreBlank': ['ignore-blank','quiet','q','i'],
'high': 'h',
'medium': 'm',
'realTime': ['real-time', 'r']
}
});
if (process.stdin.isTTY) {
console.error('Error: You must pipe another command\'s output to gnomon with |.');
console.log(intro.join('\n '));
process.exit(1);
}
var flags = cli.flags;
if (flags.realTime === 'false') flags.realTime = false;
if (process.stdout.isTTY && !flags.hasOwnProperty('realTime')) {
flags.realTime = true;
}
if (flags.realTime && typeof flags.realTime !== 'number') flags.realTime = 500;
var split = require('split');
var gnomon = require('./');
process.stdin.pipe(split())
.pipe(gnomon(flags))
.pipe(process.stdout);
process.stdout.on('error', process.exit);