*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace RectorPrefix202411\Symfony\Component\Console\Command;
use RectorPrefix202411\Symfony\Component\Console\Descriptor\ApplicationDescription;
use RectorPrefix202411\Symfony\Component\Console\Helper\DescriptorHelper;
use RectorPrefix202411\Symfony\Component\Console\Input\InputArgument;
use RectorPrefix202411\Symfony\Component\Console\Input\InputInterface;
use RectorPrefix202411\Symfony\Component\Console\Input\InputOption;
use RectorPrefix202411\Symfony\Component\Console\Output\OutputInterface;
/**
* ListCommand displays the list of all available commands for the application.
*
* @author Fabien Potencier
*/
class ListCommand extends Command
{
/**
* @return void
*/
protected function configure()
{
$this->setName('list')->setDefinition([new InputArgument('namespace', InputArgument::OPTIONAL, 'The namespace name', null, function () {
return \array_keys((new ApplicationDescription($this->getApplication()))->getNamespaces());
}), new InputOption('raw', null, InputOption::VALUE_NONE, 'To output raw command list'), new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', function () {
return (new DescriptorHelper())->getFormats();
}), new InputOption('short', null, InputOption::VALUE_NONE, 'To skip describing commands\' arguments')])->setDescription('List commands')->setHelp(<<<'EOF'
The %command.name% command lists all commands:
%command.full_name%
You can also display the commands for a specific namespace:
%command.full_name% test
You can also output the information in other formats by using the --format option:
%command.full_name% --format=xml
It's also possible to get raw list of commands (useful for embedding command runner):
%command.full_name% --raw
EOF
);
}
protected function execute(InputInterface $input, OutputInterface $output) : int
{
$helper = new DescriptorHelper();
$helper->describe($output, $this->getApplication(), ['format' => $input->getOption('format'), 'raw_text' => $input->getOption('raw'), 'namespace' => $input->getArgument('namespace'), 'short' => $input->getOption('short')]);
return 0;
}
}