enola
Version:
API and CLI for obliterating files and directories
65 lines (64 loc) • 1.77 kB
JavaScript
;
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);
});
});