setName('extension:show')
->setDescription('Lists all extensions in the database and on the filesystem.')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->manager->load_extensions();
$all = array_keys($this->manager->all_available());
if (empty($all))
{
$output->writeln('No extensions were found.');
return 3;
}
$enabled = array_keys($this->manager->all_enabled());
$this->print_extension_list($output, 'Enabled', $enabled);
$output->writeln('');
$disabled = array_keys($this->manager->all_disabled());
$this->print_extension_list($output, 'Disabled', $disabled);
$output->writeln('');
$purged = array_diff($all, $enabled, $disabled);
$this->print_extension_list($output, 'Available', $purged);
}
protected function print_extension_list(OutputInterface $output, $type, array $extensions)
{
$output->writeln("$type:");
foreach ($extensions as $extension)
{
$output->writeln(" - $extension");
}
}
}