/** * @param ConsoleCommandEvent $event */ public function validateDependencies(ConsoleCommandEvent $event) { /** * @var \Drupal\AppConsole\Command\Command $command */ $command = $event->getCommand(); $output = $event->getOutput(); $application = $command->getApplication(); $messageHelper = $application->getHelperSet()->get('message'); /** * @var TranslatorHelper */ $translatorHelper = $application->getHelperSet()->get('translator'); if (!$command instanceof Command) { return; } $dependencies = $command->getDependencies(); if ($dependencies) { foreach ($dependencies as $dependency) { if (\Drupal::moduleHandler()->moduleExists($dependency) === false) { $errorMessage = sprintf($translatorHelper->trans('commands.common.errors.module-dependency'), $dependency); $messageHelper->showMessage($output, $errorMessage, 'error'); $event->disableCommand(); } } } }
/** * @param ConsoleCommandEvent $event * @return void */ public function showGenerateDoc(ConsoleCommandEvent $event) { /** * @var \Drupal\Console\Command\Command $command */ $command = $event->getCommand(); /** * @var \Drupal\Console\Console\Application $command */ $application = $command->getApplication(); /** * @var \Drupal\Console\Config $config */ $config = $application->getConfig(); $input = $command->getDefinition(); $options = $input->getOptions(); $arguments = $input->getArguments(); if (isset($options['generate-doc']) && $options['generate-doc'] == 1) { foreach ($this->skipOptions as $remove_option) { unset($options[$remove_option]); } $parameters = ['options' => $options, 'arguments' => $arguments, 'command' => $command->getName(), 'description' => $command->getDescription(), 'aliases' => $command->getAliases()]; $renderedDoc = $application->getHelperSet()->get('renderer')->render('gitbook/generate-doc.md.twig', $parameters); $output = $event->getOutput(); $output->writeln($renderedDoc); $event->disableCommand(); } }
/** * @param ConsoleCommandEvent $event */ public function onConsoleCommand(ConsoleCommandEvent $event) { $command = $event->getCommand(); if ($this->registry->isChainedCommand($command)) { $event->disableCommand(); $event->getOutput()->writeln('<error>Chained command should not be executed directly</error>'); } }
/** * 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); }
/** * @param ConsoleCommandEvent $event * @return void */ public function showGenerateDoc(ConsoleCommandEvent $event) { /* @var \Drupal\Console\Command\Command $command */ $command = $event->getCommand(); $application = $command->getApplication(); $input = $command->getDefinition(); $options = $input->getOptions(); $arguments = $input->getArguments(); if (isset($options['generate-doc'])) { foreach ($this->skipOptions as $remove_option) { unset($options[$remove_option]); } $parameters = ['options' => $options, 'arguments' => $arguments, 'command' => $command->getName(), 'aliases' => $command->getAliases(), 'examples' => [], 'messages' => ['command_description' => sprintf($application->trans('commands.generate.doc.command.command_description'), $command->getName(), $command->getDescription()), 'usage' => $application->trans('commands.generate.doc.command.usage'), 'options' => $application->trans('commands.generate.doc.command.options'), 'option' => $application->trans('commands.generate.doc.command.options'), 'details' => $application->trans('commands.generate.doc.command.details'), 'arguments' => $application->trans('commands.generate.doc.command.arguments'), 'argument' => $application->trans('commands.generate.doc.command.argument')]]; $renderedDoc = $application->getRenderHelper()->render('gitbook/generate-doc.md.twig', $parameters); $output = $event->getOutput(); $output->writeln($renderedDoc); $event->disableCommand(); } }
/** * @param ConsoleCommandEvent $event */ public function validateDependencies(ConsoleCommandEvent $event) { /* @var Command $command */ $command = $event->getCommand(); /* @var DrupalStyle $io */ $io = $event->getOutput(); $application = $command->getApplication(); $translatorHelper = $application->getTranslator(); if (!$command instanceof Command) { return; } if ($dependencies = $command->getDependencies()) { foreach ($dependencies as $dependency) { if (!$application->getValidator()->isModuleInstalled($dependency)) { $errorMessage = sprintf($translatorHelper->trans('commands.common.errors.module-dependency'), $dependency); $io->error($errorMessage); $event->disableCommand(); } } } }
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(); } }