Esempio n. 1
0
 /**
  * Gets command to run
  *
  * @param array $words Words of the command-line string to process
  * @return array $command_array
  *         [RootCommand] $command
  *         [array]  $args
  *         [array]  $assoc_args
  */
 private function getCommand($words)
 {
     $positional_args = $assoc_args = array();
     foreach ($words as $arg) {
         if (preg_match('|^--([^=]+)=?|', $arg, $matches)) {
             $assoc_args[$matches[1]] = true;
         } else {
             $positional_args[] = $arg;
         }
     }
     $runner = new Runner();
     $command_components = $runner->findCommandToRun($positional_args);
     if (!is_array($command_components) && array_pop($command_components) == $this->cur_word) {
         $command_components = $runner->findCommandToRun($positional_args);
     }
     if (is_array($command_components)) {
         $command_components[] = $assoc_args;
     }
     return $command_components;
 }