示例#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);
 }
示例#2
0
 public function run(InputInterface $input, OutputInterface $output)
 {
     $options = $input->__toString();
     $arr = explode(' ', $options);
     array_shift($arr);
     foreach ($arr as $i => &$option) {
         $option = trim($option, "'");
         if (strpos($option, '-') === 0) {
             $option = '{' . $option . '?}';
         } else {
             $option = '{k' . $i . '}';
         }
     }
     $this->signature = implode(' ', $arr);
     $this->configureUsingFluentDefinition();
     $this->setDescription($this->description);
     return parent::run($input, $output);
 }
示例#3
0
 public function run(InputInterface $input, OutputInterface $output)
 {
     $tokens = preg_split('{\\s+}', $input->__toString());
     $args = array();
     foreach ($tokens as $token) {
         if ($token && $token[0] !== '-') {
             $args[] = $token;
             if (count($args) >= 2) {
                 break;
             }
         }
     }
     if (count($args) < 2) {
         return parent::run($input, $output);
     }
     $config = Factory::createConfig();
     chdir($config->get('home'));
     $this->getIO()->writeError('<info>Changed current directory to ' . $config->get('home') . '</info>');
     $input = new StringInput(preg_replace('{\\bg(?:l(?:o(?:b(?:a(?:l)?)?)?)?)?\\b}', '', $input->__toString(), 1));
     return $this->getApplication()->run($input, $output);
 }