X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FConsole%2FConfig.php;h=efb795360cac7c9ba5c882c7ec3480c256b936aa;hb=af2a38c5b3724d140700316f3a0251e82692de38;hp=797f6394917586fe7d1d58f94f38a7446f02e0cc;hpb=f1e7d97b8cae93e1c77f5a5085880409b01fcdbe;p=friendica.git diff --git a/src/Console/Config.php b/src/Console/Config.php index 797f639491..efb795360c 100644 --- a/src/Console/Config.php +++ b/src/Console/Config.php @@ -1,14 +1,33 @@ . + * + */ namespace Friendica\Console; use Asika\SimpleConsole\CommandArgsException; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\Capability\IManageConfigValues; use RuntimeException; /** - * @brief tool to access the system config from the CLI + * tool to access the system config from the CLI * * With this script you can access the system configuration of your node from * the CLI. You can do both, reading current values stored in the database and @@ -27,9 +46,6 @@ use RuntimeException; * If you specify three parameters, the named configuration setting will be * set to the value of the last parameter. (e.g. "system loglevel 0" will * disable logging) - * - * @author Tobias Diekershoff - * @author Hypolite Petovan */ class Config extends \Asika\SimpleConsole\Console { @@ -40,7 +56,7 @@ class Config extends \Asika\SimpleConsole\Console */ private $appMode; /** - * @var Configuration + * @var IManageConfigValues */ private $config; @@ -78,7 +94,7 @@ HELP; return $help; } - public function __construct(App\Mode $appMode, Configuration $config, array $argv = null) + public function __construct(App\Mode $appMode, IManageConfigValues $config, array $argv = null) { parent::__construct($argv); @@ -86,7 +102,7 @@ HELP; $this->config = $config; } - protected function doExecute() + protected function doExecute(): int { if ($this->getOption('v')) { $this->out('Executable: ' . $this->executable); @@ -99,10 +115,6 @@ HELP; throw new CommandArgsException('Too many arguments'); } - if (!$this->appMode->has(App\Mode::DBCONFIGAVAILABLE)) { - $this->out('Database isn\'t ready or populated yet, showing file config only'); - } - if (count($this->args) == 3) { $cat = $this->getArgument(0); $key = $this->getArgument(1); @@ -112,6 +124,10 @@ HELP; throw new RuntimeException("$cat.$key is an array and can't be set using this command."); } + if ($this->config->get($cat, $key) === $value) { + throw new RuntimeException("$cat.$key already set to $value."); + } + $result = $this->config->set($cat, $key, $value); if ($result) { $this->out("{$cat}.{$key} <= " . @@ -131,13 +147,13 @@ HELP; $this->out("{$cat}.{$key}[{$k}] => " . (is_array($v) ? implode(', ', $v) : $v)); } } else { - $this->out("{$cat}.{$key} => " . $value); + $this->out("{$cat}.{$key} => " . ($value ?? 'NULL')); } } if (count($this->args) == 1) { $cat = $this->getArgument(0); - $this->config->load($cat); + $this->config->reload(); $configCache = $this->config->getCache(); if ($configCache->get($cat) !== null) { @@ -158,11 +174,7 @@ HELP; } if (count($this->args) == 0) { - $this->config->load(); - - if ($this->config->get('system', 'config_adapter') == 'jit' && $this->appMode->has(App\Mode::DBCONFIGAVAILABLE)) { - $this->out('Warning: The JIT (Just In Time) Config adapter doesn\'t support loading the entire configuration, showing file config only'); - } + $this->config->reload(); $config = $this->config->getCache()->getAll(); foreach ($config as $cat => $section) {