UNPKG

nlu

Version:

Use this package to link your projects together for local development.

67 lines (66 loc) 2.96 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); const chalk_1 = require("chalk"); const dashdash = require('dashdash'); const cmd_line_opts_1 = require("./cmd-line-opts"); const logging_1 = require("../../logging"); const npmLinkUpPkg = require('../../../package.json'); const residence = require("residence"); const cwd = process.cwd(); const root = residence.findProjectRoot(cwd); const cmd_line_opts_2 = require("../add/cmd-line-opts"); const cmd_line_opts_3 = require("../init/cmd-line-opts"); const cmd_line_opts_4 = require("../run/cmd-line-opts"); process.once('exit', code => { logging_1.default.info('Exiting with code:', code, '\n'); }); if (!root) { logging_1.default.error('Cannot find a project root given your current working directory:', chalk_1.default.magenta(cwd)); logging_1.default.error(' => NLU could not find a package.json file within your cwd.'); process.exit(1); } const commands = [ 'nlu run', 'nlu init', 'nlu add' ]; const allowUnknown = process.argv.indexOf('--allow-unknown') > 0; let opts, parser = dashdash.createParser({ options: cmd_line_opts_1.default, allowUnknown }); try { opts = parser.parse(process.argv); } catch (e) { logging_1.default.error(chalk_1.default.magenta(' => CLI parsing error:'), chalk_1.default.magentaBright.bold(e.message)); logging_1.default.warn(chalk_1.default.gray('Perhaps you meant to use on of these commands instead:', chalk_1.default.gray.bold(commands.join(', ')))); process.exit(1); } if (opts.version) { console.log(npmLinkUpPkg.version); process.exit(0); } if (opts.help) { let help = parser.help({ includeEnv: true }).trimRight(); console.log('usage: nlu [OPTIONS]\n' + 'options:\n' + help); console.log(); logging_1.default.info('To get help for "nlu init", use:', chalk_1.default.blueBright.bold('nlu init --help')); logging_1.default.info('To get help for "nlu run", use:', chalk_1.default.blueBright.bold('nlu run --help')); logging_1.default.info('To get help for "nlu run", use:', chalk_1.default.blueBright.bold('nlu add --help')); logging_1.default.info('Etc.'); process.exit(0); } const flattenDeep = function (arr1) { return arr1.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []); }; if (opts.bash_completion) { const allOpts = flattenDeep([cmd_line_opts_2.default, cmd_line_opts_3.default, cmd_line_opts_4.default, cmd_line_opts_1.default]); let generatedBashCode = dashdash.bashCompletionFromOptions({ name: 'nlu', options: allOpts, includeHidden: false }); console.log(generatedBashCode); process.exit(0); } logging_1.default.warn(chalk_1.default.bold.italic('No command line option was recognized.')); logging_1.default.warn(chalk_1.default.gray('Perhaps you meant to use one of these commands instead:', chalk_1.default.gray.bold(commands.join(', ')))); process.exit(1);