be more flexible with configuration paths

1. only consider CONFIG_PATH environment variable, if non-empty
2. fall back to search in PATH (defined in index.php), if CONFIG_PATH doesn't contain a readable configuration file
This commit is contained in:
El RIDO 2021-08-19 10:21:21 +02:00
parent 18972ae0fa
commit eb10d4d35e
No known key found for this signature in database
GPG key ID: 0F5C940A6BD81F92

View file

@ -101,15 +101,20 @@ class Configuration
*/ */
public function __construct() public function __construct()
{ {
$config = array(); $config = $basePaths = array();
$basePath = (getenv('CONFIG_PATH') !== false ? getenv('CONFIG_PATH') : PATH . 'cfg') . DIRECTORY_SEPARATOR; $configPath = getenv('CONFIG_PATH');
$configFile = $basePath . 'conf.php'; if ($configPath !== false && !empty($configPath)) {
$basePaths[] = $configPath;
if (is_readable($configFile)) { }
$config = parse_ini_file($configFile, true); $basePaths[] = PATH . 'cfg';
foreach (array('main', 'model', 'model_options') as $section) { foreach ($basePaths as $basePath) {
if (!array_key_exists($section, $config)) { $configFile = $basePath . DIRECTORY_SEPARATOR . 'conf.php';
throw new Exception(I18n::_('PrivateBin requires configuration section [%s] to be present in configuration file.', $section), 2); if (is_readable($configFile)) {
$config = parse_ini_file($configFile, true);
foreach (array('main', 'model', 'model_options') as $section) {
if (!array_key_exists($section, $config)) {
throw new Exception(I18n::_('PrivateBin requires configuration section [%s] to be present in configuration file.', $section), 2);
}
} }
} }
} }