all files / lib/ cli.js

84.21% Statements 16/19
80% Branches 4/5
50% Functions 1/2
84.21% Lines 16/19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42                18×           18× 18×                          
#! /usr/bin/env node
 
var commander = require('commander');
var cmlpackage = require('../package.json');
 
var argv = process.argv;
 
module.exports.run = function () {
 
  var first = argv[2];
  Iif (first === '-v' || first === '--version' || first === '-V') {
    cml.log.notice(`current running chameleon(${cml.root})`)
    version();
  } else {
    commander.usage('[command] [options]')
    commander.version(`${cmlpackage.name}@${cmlpackage.version}`)
    let cmdList = ['init', 'dev', 'build', 'server', 'web', 'weex', 'wx', 'baidu', 'alipay'];
    cmdList = cmdList.map(key => {
      return {
        key: 'key',
        cmd: require(`../commanders/${key}/index.js`) // eslint-disable-line 
      }
    })
 
    cmdList.forEach(item => {
      let cmd = item.cmd;
      cmd.register(
        commander
          .command(cmd.name)
          .option('-l, --log [debug]', 'logLevel')
          .usage(cmd.usage)
          .description(cmd.desc)
      );
    })
    commander.parse(argv);
  }
 
  function version() {
    console.log(`${cmlpackage.name}@${cmlpackage.version}`)
  }
}