/** * Disabling runs members of chains and launching chains of commands. * * @param ConsoleCommandEvent $event */ public function onConsoleCommand(ConsoleCommandEvent $event) { $command = $event->getCommand(); $commandName = $command->getName(); $application = $command->getApplication(); if (!$this->manager->isInitialized()) { $this->manager->init($application); } if ($this->manager->isMember($commandName)) { $event->disableCommand(); $event->stopPropagation(); $mainCommands = $this->manager->getMainCommands($commandName); $event->getOutput()->writeln(sprintf('<error>Error: "%s" command is a member of %s command%s chain and cannot be executed on its own.</error>', $commandName, implode(', ', array_map(function ($name) { return '"' . $name . '"'; }, $mainCommands)), count($mainCommands) > 1 ? 's' : '')); } if ($this->manager->hasChains($commandName)) { $this->manager->runChain($command, $event->getInput()); $event->disableCommand(); $event->stopPropagation(); } }
public function onCommand(ConsoleCommandEvent $event) { /** @var PathHelper $path */ $path = $event->getCommand()->getHelper('path'); $this->old_working_dir = getcwd(); $working_dir = $event->getInput()->getOption('project-path'); $real_working_dir = realpath($working_dir); if (!$real_working_dir) { $event->getOutput()->writeln(sprintf('The specified project-path "%s" does not exist.', $working_dir)); $event->stopPropagation(); $event->disableCommand(); return; } $path->setProjectPath($working_dir); $event->getOutput()->writeln(sprintf("Changing directory to %s", $working_dir)); chdir($real_working_dir); }
public function onCommand(ConsoleCommandEvent $event) { $composer_json_path = 'composer.json'; if (file_exists($composer_json_path)) { return; } /** @var QuestionHelper $questionHelper */ $questionHelper = $event->getCommand()->getHelper('question'); $question = new ConfirmationQuestion('Composer has not been initialized, initialize composer now? [yes]: ', true); if (!$questionHelper->ask($event->getInput(), $event->getOutput(), $question)) { $event->getOutput()->writeln('Skipping composer init, if the command fails then you should try initializing composer.'); return; } /** @var InitHelper $initHelper */ $initHelper = $event->getCommand()->getHelper('composer init'); if ($initHelper->initComposer($event->getOutput())) { $event->getOutput()->writeln("Composer initialization failed."); $event->getOutput()->writeln("Please initialize a composer package manually before trying again."); $event->disableCommand(); $event->stopPropagation(); } }