nodejs-bash-completion/log

92 lines
1.9 KiB
JavaScript
Executable File

#!/usr/bin/env node
const This = require('./this');
const util = require('util');
class Log extends This {
constructor() {
super();
this.version = '0.0.1';
this.description = 'Helper script for building log messages';
super.init(); // initialize commander with overridden version and description
}
echo(message) {
/**
* @program()
* @command()
* @argument('<message>')
*/
console.log(message);
}
success(message) {
/**
* @program()
* @command()
* @argument('<message>')
*/
console.log(this._echoInGreen(message));
}
info(message) {
/**
* @program()
* @command()
* @argument('<message>')
*/
console.log(`[INFO] ${message}`);
}
warn(message) {
/**
* @program()
* @command()
* @argument('<message>')
*/
console.warn(`[WARN] ${this._echoInYellow(message)}`);
}
error(message) {
/**
* @program()
* @command()
* @argument('<message>')
*/
console.error(`[ERR] ${this._echoInRed(message)}`);
}
start() {
/**
* @program()
*/
if (this.debugLevel > 2) {
this.program.exitOverride();
try {
this.program.parse();
} catch (err) {
// this.echo('\n');
// this.error(err);
process.exit(1);
}
if (Object.keys(this.program.opts()).length || this.program.args.length) {
//// Debugging commander options and arguments
const opts = util.inspect(this.program.opts(), { depth: null, colors: true, showHidden: true });
const args = util.inspect(this.program.args, { depth: null, colors: true, showHidden: true });
this.echo('\n');
this.echo(`Options: ${opts}`);
this.echo(`Remaining arguments: ${args}`);
}
} else {
// don't debug log if level is < 3 or the output will be hard to read
this.program.parse();
}
}
}
// main
const log = new Log();
log.start();