code: function entry(args) {
      // 序列化请求参数，使之成为一个对象
      // https://www.npmjs.com/package/minimist
      args = minimist(process.argv.slice(2));
  
      // 初始化 Matman
      const matman = new Matman(args);
      const log = matman.log;
  
      // 校验
      if (!check(matman)) {
          process.exit(2);
      }
  
      // 初始化
      return matman.init([
          internalPluginConsole,
          internalPluginBuild,
          internalPluginInit
      ])
          .then(function () {
              let cmd = args._.shift();
  
              if (args.v || args.version) {
                  cmd = 'version';
              } else if (args.h || args.help) {
                  cmd = 'help';
              } else if (args.i || args.info) {
                  cmd = 'info';
              } else if (!cmd) {
                  cmd = 'info';
              } else if (!matman.cmd.get(cmd)) {
                  cmd = 'help';
              }
  
              return matman.call(cmd, args)
                  .then(function () {
                  })
                  .catch(function (err) {
                      console.log(err);
                  });
          })
          .catch((err) => {
              if (err) {
                  log.fatal(err);
              }
  
              process.exit(2);
          });
  }
docs: Entrance file, parse user input and call a command.
  
  @param args
  @returns {Promise.<T>}