92 lines
1.9 KiB
JavaScript
Executable File
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();
|