bin/cli
#!/usr/bin/env node
const cli = require('commander');
const updateNotifier = require('update-notifier');
const flatten = require('lodash').flatten;
const commands = require('../src/getCommands')();
const config = require('../src/config');
const pkg = require('../package.json');
updateNotifier({ pkg }).notify();
cli.version(pkg.version);
const defaultOptParser = (val) => val;
const addCommand = (command) => {
const cmd = cli
.command(command.name)
.usage(command.usage)
.description(command.description)
.action(function runAction() {
command.func(config, arguments, this.opts());
});
(command.options || [])
.forEach(opt => cmd.option(
opt.flags,
opt.description,
opt.parse || defaultOptParser,
opt.default
));
};
flatten(commands).forEach(addCommand);
cli.parse(process.argv);