protected function execute(InputInterface $input, OutputInterface $output) { $groups = $this->getRepositories(); $continue = $input->getOption('continue'); $args = $input->getRawArgs(); if (!is_array($args) || 0 === count($args)) { throw new \Exception('You must write the command after --. i.e. "buse git -- log -1"'); } $cmd = array_shift($args); foreach ($groups as $group => $repos) { foreach ($repos as $name => $repo) { $name = count($groups) > 1 ? $group . '/' . $name : $name; $output->writeln(sprintf('<comment>%s</comment>: ', $name)); try { $res = $repo->run($cmd, $args); $output->writeln($res); } catch (ProcessException $e) { if (!$continue) { throw $e; } $output->writeln($e->getErrorOutput()); } } } }
protected function execute(InputInterface $input, OutputInterface $output) { $groups = $this->getRepositories(); $args = $input->getRawArgs(); if (!is_array($args) || 0 === count($args)) { throw new \Exception('You must write the command after --. i.e. "buse exec -- log -1"'); } $cmd = array_shift($args); $repositories = []; $formatters = []; $processes = []; foreach ($groups as $group => $repos) { foreach ($repos as $name => $repo) { $key = count($groups) > 1 ? $group . '/' . $name : $name; $formatters[$key] = new Spinner(sprintf('Waiting to execute "%s"...', $cmd), 'Done'); $processes[$key] = $this->createProcess($repo, $cmd, $args); $repositories[$key] = $repo; } } $this->runProcesses($repositories, $processes, $formatters); }