UNPKG

piral-cli

Version:

The standard CLI for creating and building a Piral instance or a Pilet.

49 lines 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupCli = setupCli; const common_1 = require("./common"); const questionnaire_1 = require("./questionnaire"); const external_1 = require("./external"); let argv = external_1.yargs; function buildCommand(command) { if (command.arguments.length > 0) { return `${command.name} ${command.arguments.join(' ')}`; } return command.name; } function setupCli(commands) { for (const command of commands) { argv = argv.command([buildCommand(command), ...command.alias], command.description, (argv) => { if (command.survey) { argv = argv .boolean('y') .alias('y', 'defaults') .describe('y', 'Skips the survey by falling back to the default values.') .default('y', false); } if (typeof command.flags === 'function') { return command.flags(argv); } return argv; }, (args) => { const runCommand = () => { if (command.survey) { const result = (0, external_1.detailed)(process.argv).argv; return (0, questionnaire_1.runQuestionnaireFor)(command, result); } else { return Promise.resolve(command.run(args)); } }; console.log(`${common_1.butterflyIcon} ${common_1.cliName} v${common_1.cliVersion}`); return runCommand().then(() => process.exit(0), (err) => { err && !err.logged && console.error(err.message); console.log(`${common_1.caterpillerIcon} Find detailed descriptions at https://docs.piral.io/code/search`); process.exit(1); }); }); } argv.epilog(`${common_1.zapIcon} For more information, check out the documentation at https://docs.piral.io`).help().strict() .argv; } //# sourceMappingURL=cli.js.map