* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\console\command\extension; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class show extends command { protected function configure() { $this ->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"); } } }