summaryrefslogtreecommitdiff
path: root/vendor/symfony/console/Command/HelpCommand.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/symfony/console/Command/HelpCommand.php')
-rw-r--r--vendor/symfony/console/Command/HelpCommand.php76
1 files changed, 76 insertions, 0 deletions
diff --git a/vendor/symfony/console/Command/HelpCommand.php b/vendor/symfony/console/Command/HelpCommand.php
new file mode 100644
index 0000000..a2a72da
--- /dev/null
+++ b/vendor/symfony/console/Command/HelpCommand.php
@@ -0,0 +1,76 @@
1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\Console\Command;
13
14use Symfony\Component\Console\Descriptor\ApplicationDescription;
15use Symfony\Component\Console\Helper\DescriptorHelper;
16use Symfony\Component\Console\Input\InputArgument;
17use Symfony\Component\Console\Input\InputInterface;
18use Symfony\Component\Console\Input\InputOption;
19use Symfony\Component\Console\Output\OutputInterface;
20
21/**
22 * HelpCommand displays the help for a given command.
23 *
24 * @author Fabien Potencier <fabien@symfony.com>
25 */
26class HelpCommand extends Command
27{
28 private Command $command;
29
30 protected function configure(): void
31 {
32 $this->ignoreValidationErrors();
33
34 $this
35 ->setName('help')
36 ->setDefinition([
37 new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help', fn () => array_keys((new ApplicationDescription($this->getApplication()))->getCommands())),
38 new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', fn () => (new DescriptorHelper())->getFormats()),
39 new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command help'),
40 ])
41 ->setDescription('Display help for a command')
42 ->setHelp(<<<'EOF'
43The <info>%command.name%</info> command displays help for a given command:
44
45 <info>%command.full_name% list</info>
46
47You can also output the help in other formats by using the <comment>--format</comment> option:
48
49 <info>%command.full_name% --format=xml list</info>
50
51To display the list of available commands, please use the <info>list</info> command.
52EOF
53 )
54 ;
55 }
56
57 public function setCommand(Command $command): void
58 {
59 $this->command = $command;
60 }
61
62 protected function execute(InputInterface $input, OutputInterface $output): int
63 {
64 $this->command ??= $this->getApplication()->find($input->getArgument('command_name'));
65
66 $helper = new DescriptorHelper();
67 $helper->describe($output, $this->command, [
68 'format' => $input->getOption('format'),
69 'raw_text' => $input->getOption('raw'),
70 ]);
71
72 unset($this->command);
73
74 return 0;
75 }
76}