UNPKG

jmms

Version:

Jmms cli tools, Jmms is a java meta-micro-service framework

60 lines (51 loc) 1.66 kB
const chalk = require('chalk'); const meow = require('meow'); const cmd = require('commander'); const yo = require('./yo'); const log = require('../generators/log'); const pkg = require('../package.json'); const binName = Object.keys(pkg.bin)[0]; const version = pkg.version; //Init yo. yo.init(); //Init commander cmd.version(version).usage('[command] [options]').allowUnknownOption(); //Handle --help cmd.on('--help',() => { log.info('\n') }); //Handle unknown command. cmd.on('command:*', (name) => { log.error(`${chalk.yellow(name)} is not a known command. See '${chalk.white(`${binName} --help`)}'.`); process.exit(1); }) /* Create yo generator commands (only for parent generator) */ Object.keys(yo.metas).forEach((generator) => { const meta = yo.metas[generator]; const name = yo.toCommandName(generator, meta); const command = cmd.command(name) .description(meta.desc) .allowUnknownOption() .action((_) => { yo.run(meta, false); }) .on('--help', () => { yo.run(meta, true); }); /* if(meta.opts) { Object.keys(meta.opts).forEach(key => { const opt = meta.opts[key]; const flags = yo.toCommandOptionFlags(opt); const desc = yo.toCommandOptionDesc(opt); command.option(flags, desc); }); } */ }); //Parse command line args cmd.parse(process.argv); //Print help if no args. if (cmd.args.length < 1) { cmd.help(); }