nodejs-bash-completion/log

80 lines
1.6 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()
*/
this.program.parse();
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(`Options: ${opts}`);
//this.echo(`Remaining arguments: ${args}`);
} else {
this.program.outputHelp();
}
}
}
// main
const log = new Log();
log.start();