docs: function commandLineCommands (commands, argv) {
    const arrayify = require('array-back')
    const option = require('./option')
  
    if (!commands || (Array.isArray(commands) && !commands.length)) {
      throw new Error('Please supply one or more commands')
    }
    if (argv) {
      argv = arrayify(argv)
    } else {
      /* if no argv supplied, assume we are parsing process.argv. */
      /* never modify the global process.argv directly. */
      argv = process.argv.slice(0)
      argv.splice(0, 2)
    }
  
    /* the command is the first arg, unless it's an option (e.g. --help) */
    const command = (option.isOption(argv[0]) || !argv.length) ? null : argv.shift()
  
    if (arrayify(commands).indexOf(command) === -1) {
      const err = new Error('Command not recognised: ' + command)
      err.command = command
      err.name = 'INVALID_COMMAND'
      throw err
    }
  
    return { command: command, argv: argv }
  }