diff options
Diffstat (limited to 'phpBB/phpbb/console/command/config')
| -rw-r--r-- | phpBB/phpbb/console/command/config/command.php | 26 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/config/delete.php | 63 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/config/get.php | 72 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/config/increment.php | 70 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/config/set.php | 70 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/config/set_atomic.php | 84 | 
6 files changed, 385 insertions, 0 deletions
| diff --git a/phpBB/phpbb/console/command/config/command.php b/phpBB/phpbb/console/command/config/command.php new file mode 100644 index 0000000000..de3fbd7fa7 --- /dev/null +++ b/phpBB/phpbb/console/command/config/command.php @@ -0,0 +1,26 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @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\config; + +abstract class command extends \phpbb\console\command\command +{ +	/** @var \phpbb\config\config */ +	protected $config; + +	function __construct(\phpbb\config\config $config) +	{ +		$this->config = $config; + +		parent::__construct(); +	} +} diff --git a/phpBB/phpbb/console/command/config/delete.php b/phpBB/phpbb/console/command/config/delete.php new file mode 100644 index 0000000000..1310bb18b4 --- /dev/null +++ b/phpBB/phpbb/console/command/config/delete.php @@ -0,0 +1,63 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @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\config; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class delete extends command +{ +	/** +	* {@inheritdoc} +	*/ +	protected function configure() +	{ +		$this +			->setName('config:delete') +			->setDescription('Deletes a configuration option') +			->addArgument( +				'key', +				InputArgument::REQUIRED, +				"The configuration option's name" +			) +		; +	} + +	/** +	* Executes the command config:delete. +	* +	* Removes a configuration option +	* +	* @param InputInterface  $input  An InputInterface instance +	* @param OutputInterface $output An OutputInterface instance +	* +	* @return null +	* @see \phpbb\config\config::delete() +	*/ +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$key = $input->getArgument('key'); + +		if (isset($this->config[$key])) +		{ +			$this->config->delete($key); + +			$output->writeln("<info>Successfully deleted config $key</info>"); +		} +		else +		{ +			$output->writeln("<error>Config $key does not exist</error>"); +		} +	} +} diff --git a/phpBB/phpbb/console/command/config/get.php b/phpBB/phpbb/console/command/config/get.php new file mode 100644 index 0000000000..ee8c65110e --- /dev/null +++ b/phpBB/phpbb/console/command/config/get.php @@ -0,0 +1,72 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @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\config; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class get extends command +{ +	/** +	* {@inheritdoc} +	*/ +	protected function configure() +	{ +		$this +			->setName('config:get') +			->setDescription("Gets a configuration option's value") +			->addArgument( +				'key', +				InputArgument::REQUIRED, +				"The configuration option's name" +			) +			->addOption( +				'no-newline', +				null, +				InputOption::VALUE_NONE, +				'Set this option if the value should be printed without a new line at the end.' +			) +		; +	} + +	/** +	* Executes the command config:get. +	* +	* Retrieves a configuration value. +	* +	* @param InputInterface  $input  An InputInterface instance +	* @param OutputInterface $output An OutputInterface instance +	* +	* @return null +	* @see \phpbb\config\config::offsetGet() +	*/ +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$key = $input->getArgument('key'); + +		if (isset($this->config[$key]) && $input->getOption('no-newline')) +		{ +			$output->write($this->config[$key]); +		} +		else if (isset($this->config[$key])) +		{ +			$output->writeln($this->config[$key]); +		} +		else +		{ +			$output->writeln("<error>Could not get config $key</error>"); +		} +	} +} diff --git a/phpBB/phpbb/console/command/config/increment.php b/phpBB/phpbb/console/command/config/increment.php new file mode 100644 index 0000000000..21f0660e61 --- /dev/null +++ b/phpBB/phpbb/console/command/config/increment.php @@ -0,0 +1,70 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @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\config; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class increment extends command +{ +	/** +	* {@inheritdoc} +	*/ +	protected function configure() +	{ +		$this +			->setName('config:increment') +			->setDescription("Increments a configuration option's value") +			->addArgument( +				'key', +				InputArgument::REQUIRED, +				"The configuration option's name" +			) +			->addArgument( +				'increment', +				InputArgument::REQUIRED, +				'Amount to increment by' +			) +			->addOption( +				'dynamic', +				'd', +				InputOption::VALUE_NONE, +				'Set this option if the configuration option changes too frequently to be efficiently cached.' +			) +		; +	} + +	/** +	* Executes the command config:increment. +	* +	* Increments an integer configuration value. +	* +	* @param InputInterface  $input  An InputInterface instance +	* @param OutputInterface $output An OutputInterface instance +	* +	* @return null +	* @see \phpbb\config\config::increment() +	*/ +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$key = $input->getArgument('key'); +		$increment = $input->getArgument('increment'); +		$use_cache = !$input->getOption('dynamic'); + +		$this->config->increment($key, $increment, $use_cache); + +		$output->writeln("<info>Successfully incremented config $key</info>"); +	} +} diff --git a/phpBB/phpbb/console/command/config/set.php b/phpBB/phpbb/console/command/config/set.php new file mode 100644 index 0000000000..587b7fb0de --- /dev/null +++ b/phpBB/phpbb/console/command/config/set.php @@ -0,0 +1,70 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @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\config; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class set extends command +{ +	/** +	* {@inheritdoc} +	*/ +	protected function configure() +	{ +		$this +			->setName('config:set') +			->setDescription("Sets a configuration option's value") +			->addArgument( +				'key', +				InputArgument::REQUIRED, +				"The configuration option's name" +			) +			->addArgument( +				'value', +				InputArgument::REQUIRED, +				'New configuration value, use 0 and 1 to specify boolean values' +			) +			->addOption( +				'dynamic', +				'd', +				InputOption::VALUE_NONE, +				'Set this option if the configuration option changes too frequently to be efficiently cached.' +			) +		; +	} + +	/** +	* Executes the command config:set. +	* +	* Sets a configuration option's value. +	* +	* @param InputInterface  $input  An InputInterface instance +	* @param OutputInterface $output An OutputInterface instance +	* +	* @return null +	* @see \phpbb\config\config::set() +	*/ +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$key = $input->getArgument('key'); +		$value = $input->getArgument('value'); +		$use_cache = !$input->getOption('dynamic'); + +		$this->config->set($key, $value, $use_cache); + +		$output->writeln("<info>Successfully set config $key</info>"); +	} +} diff --git a/phpBB/phpbb/console/command/config/set_atomic.php b/phpBB/phpbb/console/command/config/set_atomic.php new file mode 100644 index 0000000000..a7a52155f9 --- /dev/null +++ b/phpBB/phpbb/console/command/config/set_atomic.php @@ -0,0 +1,84 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @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\config; + +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class set_atomic extends command +{ +	/** +	* {@inheritdoc} +	*/ +	protected function configure() +	{ +		$this +			->setName('config:set-atomic') +			->setDescription("Sets a configuration option's value only if the old matches the current value.") +			->addArgument( +				'key', +				InputArgument::REQUIRED, +				"The configuration option's name" +			) +			->addArgument( +				'old', +				InputArgument::REQUIRED, +				'Current configuration value, use 0 and 1 to specify boolean values' +			) +			->addArgument( +				'new', +				InputArgument::REQUIRED, +				'New configuration value, use 0 and 1 to specify boolean values' +			) +			->addOption( +				'dynamic', +				'd', +				InputOption::VALUE_NONE, +				'Set this option if the configuration option changes too frequently to be efficiently cached.' +			) +		; +	} + +	/** +	* Executes the command config:set-atomic. +	* +	* Sets a configuration option's value only if the old_value matches the +	* current configuration value or the configuration value does not exist yet. +	* +	* @param InputInterface  $input  An InputInterface instance +	* @param OutputInterface $output An OutputInterface instance +	* +	* @return bool True if the value was changed, false otherwise. +	* @see \phpbb\config\config::set_atomic() +	*/ +	protected function execute(InputInterface $input, OutputInterface $output) +	{ +		$key = $input->getArgument('key'); +		$old_value = $input->getArgument('old'); +		$new_value = $input->getArgument('new'); +		$use_cache = !$input->getOption('dynamic'); + +		if ($this->config->set_atomic($key, $old_value, $new_value, $use_cache)) +		{ +			$output->writeln("<info>Successfully set config $key</info>"); +			return 0; +		} +		else +		{ +			$output->writeln("<error>Could not set config $key</error>"); +			return 1; +		} +	} +} | 
