Example #1
0
 public function run(InputInterface $input, OutputInterface $output)
 {
     // extract real command name
     $tokens = preg_split('{\\s+}', $input->__toString());
     $args = array();
     foreach ($tokens as $token) {
         if ($token && $token[0] !== '-') {
             $args[] = $token;
             if (count($args) >= 2) {
                 break;
             }
         }
     }
     // show help for this command if no command was found
     if (count($args) < 2) {
         return parent::run($input, $output);
     }
     // change to global dir
     $config = Factory::createConfig();
     chdir($config->get('home'));
     $this->getIO()->writeError('<info>Changed current directory to ' . $config->get('home') . '</info>');
     // create new input without "global" command prefix
     $input = new StringInput(preg_replace('{\\bg(?:l(?:o(?:b(?:a(?:l)?)?)?)?)?\\b}', '', $input->__toString(), 1));
     $this->getApplication()->resetComposer();
     return $this->getApplication()->run($input, $output);
 }
 /**
  * Execute the command and throw exceptions on errors.
  *
  * @param BaseCommand     $command The command to execute.
  *
  * @param InputInterface  $input   The input to use.
  *
  * @param OutputInterface $output The output to use.
  *
  * @return void
  *
  * @throws \RuntimeException On exceptions or when the command has an non zero exit code.
  */
 protected function executeCommand(BaseCommand $command, InputInterface $input, OutputInterface $output)
 {
     try {
         if (0 !== ($statusCode = $command->run($input, $output))) {
             throw new \RuntimeException('Error: command exit code was ' . $statusCode);
         }
     } catch (\Exception $exception) {
         throw new \RuntimeException($exception->getMessage(), $exception->getCode(), $exception);
     }
 }