mirror of
https://we.phorge.it/source/arcanist.git
synced 2025-01-10 06:41:04 +01:00
82d05fee9f
Summary: Adds a system arc config file with precedence below the user config file, both to ArcanistWorkingCopyIdentity::readConfigFromAnySource() and to base commit resolution. Test Plan: [14:48:45 Mon Jun 25 2012] dschleimer@dev4022.snc6 ~/devtools/arcanist arcanist system_config 21245 $ cat /etc/arcconfig { "base": "literal:foobar" } [14:52:31 Mon Jun 25 2012] dschleimer@dev4022.snc6 ~/devtools/arcanist arcanist system_config 21246 $ ./bin/arc get-config base (system) base = literal:foobar (global) base = [14:52:39 Mon Jun 25 2012] dschleimer@dev4022.snc6 ~/devtools/arcanist arcanist system_config 21247 $ ./bin/arc which --show-base --base 'arc:system' foobar Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Maniphest Tasks: T1233 Differential Revision: https://secure.phabricator.com/D2854
80 lines
1.9 KiB
PHP
80 lines
1.9 KiB
PHP
<?php
|
|
|
|
/*
|
|
* Copyright 2012 Facebook, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/**
|
|
* Read configuration settings.
|
|
*
|
|
* @group workflow
|
|
*/
|
|
final class ArcanistGetConfigWorkflow extends ArcanistBaseWorkflow {
|
|
|
|
public function getCommandSynopses() {
|
|
return phutil_console_format(<<<EOTEXT
|
|
**get-config** -- [__name__ ...]
|
|
EOTEXT
|
|
);
|
|
}
|
|
|
|
public function getCommandHelp() {
|
|
return phutil_console_format(<<<EOTEXT
|
|
Supports: cli
|
|
Reads an arc configuration option. With no arugment, reads all
|
|
options.
|
|
EOTEXT
|
|
);
|
|
}
|
|
|
|
public function getArguments() {
|
|
return array(
|
|
'*' => 'argv',
|
|
);
|
|
}
|
|
|
|
public function desiresRepositoryAPI() {
|
|
return true;
|
|
}
|
|
|
|
public function run() {
|
|
$argv = $this->getArgument('argv');
|
|
|
|
$configs = array(
|
|
'system' => self::readSystemArcConfig(),
|
|
'global' => self::readGlobalArcConfig(),
|
|
'local' => $this->readLocalArcConfig(),
|
|
);
|
|
if ($argv) {
|
|
$keys = $argv;
|
|
} else {
|
|
$keys = array_mergev(array_map('array_keys', $configs));
|
|
$keys = array_unique($keys);
|
|
sort($keys);
|
|
}
|
|
|
|
foreach ($keys as $key) {
|
|
foreach ($configs as $name => $config) {
|
|
if ($name == 'global' || isset($config[$key])) {
|
|
$val = self::formatConfigValueForDisplay(idx($config, $key));
|
|
echo "({$name}) {$key} = {$val}\n";
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
}
|