mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
In the process, rename config.proto to config.defaults (because that is what it is now). Also use dict.get('key', default_value) when querying os.environ, rather than an if block, as it is more pythonic/readable/concise, and reduces the number of dict lookups. This change allows aurweb configuration to be done via either: - copying config.defaults to config and modifying values - creating a new config only containing modified values, next to a config.defaults containing unmodified values The motivation for this change is to enable ansible configuration in our flagship deployment by storing only changed values, and deferring to config.defaults otherwise. A side benefit is, it is easier to see what has changed by inspecting only the site configuration file. If a config.defaults file does not exist next to $AUR_CONFIG or in $AUR_CONFIG_DEFAULTS, it is ignored and *all* values are expected to live in the modified config file. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
57 lines
1.2 KiB
PHP
57 lines
1.2 KiB
PHP
<?php
|
|
|
|
function config_load() {
|
|
global $AUR_CONFIG;
|
|
|
|
if (!isset($AUR_CONFIG)) {
|
|
$path = getenv('AUR_CONFIG');
|
|
if (!$path) {
|
|
$path = "/etc/aurweb/config";
|
|
}
|
|
$defaults_path = getenv('AUR_CONFIG_DEFAULTS');
|
|
if (!$defaults_path) {
|
|
$defaults_path = path . ".defaults";
|
|
}
|
|
if (file_exists($defaults_path)) {
|
|
$default_config = parse_ini_file($defaults_path, true, INI_SCANNER_RAW);
|
|
} else {
|
|
$default_config = [];
|
|
}
|
|
if (file_exists($path)) {
|
|
$config = parse_ini_file($path, true, INI_SCANNER_RAW);
|
|
} else {
|
|
die("aurweb config file not found");
|
|
}
|
|
$AUR_CONFIG = array_replace_recursive($default_config, $config)
|
|
}
|
|
}
|
|
|
|
function config_get($section, $key) {
|
|
global $AUR_CONFIG;
|
|
config_load();
|
|
|
|
return $AUR_CONFIG[$section][$key];
|
|
}
|
|
|
|
function config_get_int($section, $key) {
|
|
return intval(config_get($section, $key));
|
|
}
|
|
|
|
function config_get_bool($section, $key) {
|
|
$val = strtolower(config_get($section, $key));
|
|
return ($val == 'yes' || $val == 'true' || $val == '1');
|
|
}
|
|
|
|
function config_items($section) {
|
|
global $AUR_CONFIG;
|
|
config_load();
|
|
|
|
return $AUR_CONFIG[$section];
|
|
}
|
|
|
|
function config_section_exists($key) {
|
|
global $AUR_CONFIG;
|
|
config_load();
|
|
|
|
return array_key_exists($key, $AUR_CONFIG);
|
|
}
|