UNPKG

enola

Version:

API and CLI for obliterating files and directories

65 lines (64 loc) 1.77 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const log4js = require("log4js"); const yargs = require("yargs"); const chalk_1 = require("chalk"); function getLogger(argv) { const default_logger = log4js.getLogger("default"); return typeof argv === "undefined" ? default_logger : argv.silent ? log4js.getLogger("silent") : argv.pretty ? log4js.getLogger("colour") : default_logger; } exports.getLogger = getLogger; exports.argh = yargs .boolean("pretty") .alias("pretty", "p") .default("pretty", true) .describe("pretty", "Output styling") .boolean("silent") .alias("silent", "s") .default("silent", false) .describe("silent", "Mute output") .alias("help", "h") .alias("version", "v"); log4js.configure({ appenders: { "colour": { type: "console", layout: { type: "pattern", pattern: `${chalk_1.default.yellow("ENOLA")} %[%p%]\t%m` } }, "plain": { type: "console", layout: { type: "pattern", pattern: `ENOLA %p\t%m` } } }, categories: { "colour": { appenders: ["colour"], level: log4js.levels.ALL.toString() }, "default": { appenders: ["plain"], level: log4js.levels.ALL.toString() }, "silent": { appenders: ["plain"], level: log4js.levels.OFF.toString() } } }); process.once("beforeExit", function (ev) { const logger = getLogger(); log4js.shutdown(function (err) { if (err) logger.error(err); }); });