UNPKG

@tableau/taco-toolkit

Version:
57 lines 4.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addLoggingOptions = exports.createScriptCommand = void 0; var commander_1 = require("commander"); var connector_1 = require("../taco-commands/utils/connector"); var logging_1 = require("../taco-commands/utils/logging"); function createScriptCommand(name, description, config) { var program = new commander_1.Command(name).description(description).configureHelp({ sortOptions: true, }); var loggingOptions = config.loggingOptions, handler = config.handler, setup = config.setup; // add the argument and options in the setup stage if (setup) { setup(program); } addLoggingOptions(program, loggingOptions); // register handlers program.action(function () { if (loggingOptions) { var loggerConfig = createLoggerConfig(program, loggingOptions); (0, logging_1.initLogger)(loggerConfig); } handler(program); }); return program; } exports.createScriptCommand = createScriptCommand; function createLoggerConfig(program, loggingOptions) { var options = program.optsWithGlobals(); var verbose = options.verbose; if (loggingOptions.logLevel) { var tacoRootPath = (0, connector_1.findTacoRootPath)(); return { verbose: verbose, fileLogLevel: options.logLevel, fileLogDirPath: (0, logging_1.getLogPath)(tacoRootPath), }; } return { verbose: verbose, }; } function addLoggingOptions(program, loggingOptions) { if (loggingOptions === undefined) { return program; } var verbose = loggingOptions.verbose, logLevel = loggingOptions.logLevel; if (verbose) { program.option('-v, --verbose', 'run this command in verbose mode', false); } if (logLevel) { program.addOption(new commander_1.Option('--log-level <level>', 'set the logging level to one of the following choices').choices(Object.keys(logging_1.cliLogLevel))); } return program; } exports.addLoggingOptions = addLoggingOptions; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvdGFjby1zY3JpcHRzL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQTJDO0FBRTNDLDhEQUFtRTtBQUNuRSwwREFBcUc7QUFtQnJHLFNBQWdCLG1CQUFtQixDQUFDLElBQVksRUFBRSxXQUFtQixFQUFFLE1BQXFCO0lBQzFGLElBQU0sT0FBTyxHQUFHLElBQUksbUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ3ZFLFdBQVcsRUFBRSxJQUFJO0tBQ2xCLENBQUMsQ0FBQTtJQUVNLElBQUEsY0FBYyxHQUFxQixNQUFNLGVBQTNCLEVBQUUsT0FBTyxHQUFZLE1BQU0sUUFBbEIsRUFBRSxLQUFLLEdBQUssTUFBTSxNQUFYLENBQVc7SUFFakQsa0RBQWtEO0lBQ2xELElBQUksS0FBSyxFQUFFO1FBQ1QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQ2Y7SUFFRCxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFMUMsb0JBQW9CO0lBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDYixJQUFJLGNBQWMsRUFBRTtZQUNsQixJQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7WUFDaEUsSUFBQSxvQkFBVSxFQUFDLFlBQVksQ0FBQyxDQUFBO1NBQ3pCO1FBRUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xCLENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQXpCRCxrREF5QkM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE9BQWdCLEVBQUUsY0FBOEI7SUFDMUUsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2pDLElBQUEsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFZO0lBRTNCLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRTtRQUMzQixJQUFNLFlBQVksR0FBRyxJQUFBLDRCQUFnQixHQUFFLENBQUE7UUFFdkMsT0FBTztZQUNMLE9BQU8sU0FBQTtZQUNQLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUTtZQUM5QixjQUFjLEVBQUUsSUFBQSxvQkFBVSxFQUFDLFlBQVksQ0FBQztTQUN6QyxDQUFBO0tBQ0Y7SUFFRCxPQUFPO1FBQ0wsT0FBTyxTQUFBO0tBQ1IsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxPQUFnQixFQUFFLGNBQTBDO0lBQzVGLElBQUksY0FBYyxLQUFLLFNBQVMsRUFBRTtRQUNoQyxPQUFPLE9BQU8sQ0FBQTtLQUNmO0lBRU8sSUFBQSxPQUFPLEdBQWUsY0FBYyxRQUE3QixFQUFFLFFBQVEsR0FBSyxjQUFjLFNBQW5CLENBQW1CO0lBQzVDLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsa0NBQWtDLEVBQUUsS0FBSyxDQUFDLENBQUE7S0FDM0U7SUFFRCxJQUFJLFFBQVEsRUFBRTtRQUNaLE9BQU8sQ0FBQyxTQUFTLENBQ2YsSUFBSSxrQkFBTSxDQUFDLHFCQUFxQixFQUFFLHVEQUF1RCxDQUFDLENBQUMsT0FBTyxDQUNoRyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFXLENBQUMsQ0FDekIsQ0FDRixDQUFBO0tBQ0Y7SUFDRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBbEJELDhDQWtCQyJ9