Allow the config command to read out values if no new value is provided
parent
24963fb4c8
commit
0d506228d6
|
@ -151,7 +151,8 @@ EOT
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$input->getArgument('setting-key')) {
|
$settingKey = $input->getArgument('setting-key');
|
||||||
|
if (!$settingKey) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,14 +160,56 @@ EOT
|
||||||
if (array() !== $input->getArgument('setting-value') && $input->getOption('unset')) {
|
if (array() !== $input->getArgument('setting-value') && $input->getOption('unset')) {
|
||||||
throw new \RuntimeException('You can not combine a setting value with --unset');
|
throw new \RuntimeException('You can not combine a setting value with --unset');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// list value
|
||||||
if (array() === $input->getArgument('setting-value') && !$input->getOption('unset')) {
|
if (array() === $input->getArgument('setting-value') && !$input->getOption('unset')) {
|
||||||
throw new \RuntimeException('You must include a setting value or pass --unset to clear the value');
|
$data = $this->configFile->read();
|
||||||
|
if (preg_match('/^repos?(?:itories)?(?:\.(.+))?/', $settingKey, $matches)) {
|
||||||
|
if (empty($matches[1])) {
|
||||||
|
$value = isset($data['repositories']) ? $data['repositories'] : array();
|
||||||
|
} else {
|
||||||
|
if (!isset($data['repositories'][$matches[1]])) {
|
||||||
|
throw new \InvalidArgumentException('There is no '.$matches[1].' repository defined');
|
||||||
|
}
|
||||||
|
|
||||||
|
$value = $data['repositories'][$matches[1]];
|
||||||
|
}
|
||||||
|
} elseif (strpos($settingKey, '.')) {
|
||||||
|
$bits = explode('.', $settingKey);
|
||||||
|
$data = $data['config'];
|
||||||
|
foreach ($bits as $bit) {
|
||||||
|
if (isset($data[$bit])) {
|
||||||
|
$data = $data[$bit];
|
||||||
|
} elseif (isset($data[implode('.', $bits)])) {
|
||||||
|
// last bit can contain domain names and such so try to join whatever is left if it exists
|
||||||
|
$data = $data[implode('.', $bits)];
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
throw new \RuntimeException($settingKey.' is not defined');
|
||||||
|
}
|
||||||
|
array_shift($bits);
|
||||||
|
}
|
||||||
|
|
||||||
|
$value = $data;
|
||||||
|
} elseif (isset($data['config'][$settingKey])) {
|
||||||
|
$value = $data['config'][$settingKey];
|
||||||
|
} else {
|
||||||
|
throw new \RuntimeException($settingKey.' is not defined');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($value)) {
|
||||||
|
$value = json_encode($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
$output->writeln($value);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$values = $input->getArgument('setting-value'); // what the user is trying to add/change
|
$values = $input->getArgument('setting-value'); // what the user is trying to add/change
|
||||||
|
|
||||||
// handle repositories
|
// handle repositories
|
||||||
if (preg_match('/^repos?(?:itories)?\.(.+)/', $input->getArgument('setting-key'), $matches)) {
|
if (preg_match('/^repos?(?:itories)?\.(.+)/', $settingKey, $matches)) {
|
||||||
if ($input->getOption('unset')) {
|
if ($input->getOption('unset')) {
|
||||||
return $this->configSource->removeRepository($matches[1]);
|
return $this->configSource->removeRepository($matches[1]);
|
||||||
}
|
}
|
||||||
|
@ -214,7 +257,6 @@ EOT
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
$settingKey = $input->getArgument('setting-key');
|
|
||||||
foreach ($uniqueConfigValues as $name => $callbacks) {
|
foreach ($uniqueConfigValues as $name => $callbacks) {
|
||||||
if ($settingKey === $name) {
|
if ($settingKey === $name) {
|
||||||
if ($input->getOption('unset')) {
|
if ($input->getOption('unset')) {
|
||||||
|
|
Loading…
Reference in New Issue