Path: blob/master/src/applications/config/management/PhabricatorConfigManagementGetWorkflow.php
12256 views
<?php12final class PhabricatorConfigManagementGetWorkflow3extends PhabricatorConfigManagementWorkflow {45protected function didConstruct() {6$this7->setName('get')8->setExamples('**get** __key__')9->setSynopsis(pht('Get a local configuration value.'))10->setArguments(11array(12array(13'name' => 'args',14'wildcard' => true,15),16));17}1819public function execute(PhutilArgumentParser $args) {20$console = PhutilConsole::getConsole();2122$argv = $args->getArg('args');23if (count($argv) == 0) {24throw new PhutilArgumentUsageException(25pht('Specify a configuration key to get.'));26}2728$key = $argv[0];2930if (count($argv) > 1) {31throw new PhutilArgumentUsageException(32pht('Too many arguments: expected one key.'));33}3435$options = PhabricatorApplicationConfigOptions::loadAllOptions();36if (empty($options[$key])) {37throw new PhutilArgumentUsageException(38pht(39"No such configuration key '%s'! Use `%s` to list all keys.",40$key,41'config list'));42}4344$values = array();45$config = new PhabricatorConfigLocalSource();46$local_value = $config->getKeys(array($key));47if (empty($local_value)) {48$values['local'] = array(49'key' => $key,50'value' => null,51'status' => 'unset',52'errorInfo' => null,53);54} else {55$values['local'] = array(56'key' => $key,57'value' => reset($local_value),58'status' => 'set',59'errorInfo' => null,60);61}6263try {64$database_config = new PhabricatorConfigDatabaseSource('default');65$database_value = $database_config->getKeys(array($key));66if (empty($database_value)) {67$values['database'] = array(68'key' => $key,69'value' => null,70'status' => 'unset',71'errorInfo' => null,72);73} else {74$values['database'] = array(75'key' => $key,76'value' => reset($database_value),77'status' => 'set',78'errorInfo' => null,79);80}81} catch (Exception $e) {82$values['database'] = array(83'key' => $key,84'value' => null,85'status' => 'error',86'errorInfo' => pht('Database source is not configured properly'),87);88}8990$result = array();91foreach ($values as $source => $value) {92$result[] = array(93'key' => $value['key'],94'source' => $source,95'value' => $value['value'],96'status' => $value['status'],97'errorInfo' => $value['errorInfo'],98);99}100$result = array(101'config' => $result,102);103104$json = new PhutilJSON();105$console->writeOut($json->encodeFormatted($result));106}107108}109110111