#!/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('') */ console.log(message); } success(message) { /** * @program() * @command() * @argument('') */ console.log(this._echoInGreen(message)); } info(message) { /** * @program() * @command() * @argument('') */ console.log(`[INFO] ${message}`); } warn(message) { /** * @program() * @command() * @argument('') */ console.warn(`[WARN] ${this._echoInYellow(message)}`); } error(message) { /** * @program() * @command() * @argument('') */ console.error(`[ERR] ${this._echoInRed(message)}`); } start() { /** * @program() */ this.program.exitOverride(); try { this.program.parse(); } catch (err) { // custom processing... } 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}`); } } } // main const log = new Log(); log.start();