settings = $settings; $this->logger = $logger; $this->translator = $translator; $this->extmgr = $extmgr; parent::__construct(); } protected function configure() { $this->setName('ext:configure') ->setDescription('Configure extension') ->setHelp('Enables and disables an extensions.') ->addOption('name', '', InputOption::VALUE_REQUIRED, 'Name of extension.', null) ->addOption('enable', '', InputOption::VALUE_NONE, 'Enable extension.') ->addOption('disable', '', InputOption::VALUE_NONE, 'Disable extension.') ; } protected function execute(InputInterface $input, OutputInterface $output) : int { $settings = $this->settings; $logger = $this->logger; $translator = $this->translator; $extmgr = $this->extmgr; $output->writeln("Using configuration from '".$settings->_configFilePath."'.", OutputInterface::VERBOSITY_VERBOSE); if (($input->getOption('enable') || $input->getOption('disable')) && !is_writable($settings->_configFilePath)) { $output->writeln(sprintf("The configuration file '%s' is not writable by the system user running this script.", $settings->_configFilePath)); return Command::FAILURE; } $extconf = $extmgr->getExtensionConfiguration(); $extname = $input->getOption('name'); if (!isset($extconf[$extname])) { $output->writeln(sprintf("No such extension '%s'", $extname)); return Command::FAILURE; } if ($input->getOption('enable')) { if ($settings->extensionIsDisabled($extname)) { $settings->enableExtension($extname); if (false === $settings->save()) { $output->writeln(sprintf("Could not write configuration.", $extname)); return Command::FAILURE; } else { $output->writeln(sprintf("Extension is %s.", $settings->extensionIsDisabled($extname) ? 'disabled' : 'enabled')); } } else { $output->writeln(sprintf("Extension already enabled.")); } } elseif ($input->getOption('disable')) { if (!$settings->extensionIsDisabled($extname)) { $settings->disableExtension($extname); if (false === $settings->save()) { $output->writeln(sprintf("Could not write configuration.", $extname)); return Command::FAILURE; } else { $output->writeln(sprintf("Extension is %s.", $settings->extensionIsDisabled($extname) ? 'disabled' : 'enabled')); } } else { $output->writeln(sprintf("Extension already disabled.")); } } else { $output->writeln(sprintf("Extension is %s.", $settings->extensionIsDisabled($extname) ? 'disabled' : 'enabled')); } return Command::SUCCESS; } } // vim: ts=4 sw=4 expandtab