@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
60 lines • 4.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addLoggingOptions = exports.createCommand = exports.OPTION_ACCEPT_EULA = void 0;
var commander_1 = require("commander");
var logging_1 = require("./utils/logging");
var toolkit_paths_1 = require("./utils/toolkit-paths");
exports.OPTION_ACCEPT_EULA = '--accept-eula';
function createCommand(name, description, config) {
var program = new commander_1.Command(name)
.description(description)
.configureHelp({
sortOptions: true,
})
.exitOverride();
var loggingOptions = config.loggingOptions, withCommonOptions = config.withCommonOptions, handler = config.handler, setup = config.setup;
// add the argument and options in the setup stage
if (setup) {
setup(program);
}
addCommonOptions(program, withCommonOptions);
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.createCommand = createCommand;
function createLoggerConfig(program, loggingOptions) {
var options = program.optsWithGlobals();
var verbose = options.verbose;
if (loggingOptions.verbose) {
return {
verbose: verbose,
};
}
return {};
}
function addLoggingOptions(program, loggingOptions) {
if (loggingOptions === undefined) {
return program;
}
var verbose = loggingOptions.verbose;
if (verbose) {
program.option('-v, --verbose', 'run this command in verbose mode', false);
}
return program;
}
exports.addLoggingOptions = addLoggingOptions;
function addCommonOptions(program, withCommonOptions) {
if (withCommonOptions === false) {
return program;
}
return program.option('--accept-eula', "accept the taco-toolkit end-user license agreement (EULA). The EULA is available in the following location: ".concat(toolkit_paths_1.LICENSE_FILE_PATH));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvdGFjby1jb21tYW5kcy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUFtQztBQUVuQywyQ0FBK0Q7QUFDL0QsdURBQXlEO0FBRTVDLFFBQUEsa0JBQWtCLEdBQUcsZUFBZSxDQUFBO0FBbUJqRCxTQUFnQixhQUFhLENBQUMsSUFBWSxFQUFFLFdBQW1CLEVBQUUsTUFBcUI7SUFDcEYsSUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxDQUFDLElBQUksQ0FBQztTQUM5QixXQUFXLENBQUMsV0FBVyxDQUFDO1NBQ3hCLGFBQWEsQ0FBQztRQUNiLFdBQVcsRUFBRSxJQUFJO0tBQ2xCLENBQUM7U0FDRCxZQUFZLEVBQUUsQ0FBQTtJQUVULElBQUEsY0FBYyxHQUF3QyxNQUFNLGVBQTlDLEVBQUUsaUJBQWlCLEdBQXFCLE1BQU0sa0JBQTNCLEVBQUUsT0FBTyxHQUFZLE1BQU0sUUFBbEIsRUFBRSxLQUFLLEdBQUssTUFBTSxNQUFYLENBQVc7SUFFcEUsa0RBQWtEO0lBQ2xELElBQUksS0FBSyxFQUFFO1FBQ1QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQ2Y7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtJQUM1QyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFMUMsb0JBQW9CO0lBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDYixJQUFJLGNBQWMsRUFBRTtZQUNsQixJQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7WUFDaEUsSUFBQSxvQkFBVSxFQUFDLFlBQVksQ0FBQyxDQUFBO1NBQ3pCO1FBRUQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xCLENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQztBQTdCRCxzQ0E2QkM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE9BQWdCLEVBQUUsY0FBOEI7SUFDMUUsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2pDLElBQUEsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFZO0lBRTNCLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRTtRQUMxQixPQUFPO1lBQ0wsT0FBTyxTQUFBO1NBQ1IsQ0FBQTtLQUNGO0lBRUQsT0FBTyxFQUFFLENBQUE7QUFDWCxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsT0FBZ0IsRUFBRSxjQUEwQztJQUM1RixJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7UUFDaEMsT0FBTyxPQUFPLENBQUE7S0FDZjtJQUVPLElBQUEsT0FBTyxHQUFLLGNBQWMsUUFBbkIsQ0FBbUI7SUFDbEMsSUFBSSxPQUFPLEVBQUU7UUFDWCxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxrQ0FBa0MsRUFBRSxLQUFLLENBQUMsQ0FBQTtLQUMzRTtJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFWRCw4Q0FVQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsT0FBZ0IsRUFBRSxpQkFBMEI7SUFDcEUsSUFBSSxpQkFBaUIsS0FBSyxLQUFLLEVBQUU7UUFDL0IsT0FBTyxPQUFPLENBQUE7S0FDZjtJQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsZUFBZSxFQUNmLHNIQUErRyxpQ0FBaUIsQ0FBRSxDQUNuSSxDQUFBO0FBQ0gsQ0FBQyJ9