+require('Symfony/Component/Dotenv/autoload.php');
+
+function loadSettings($sProjectDir)
+{
+ @define('CONST_InstallDir', $sProjectDir);
+ // Temporary hack to set the direcory via environment instead of
+ // the installed scripts. Neither setting is part of the official
+ // set of settings.
+ defined('CONST_DataDir') or define('CONST_DataDir', $_SERVER['NOMINATIM_DATADIR']);
+ defined('CONST_BinDir') or define('CONST_BinDir', $_SERVER['NOMINATIM_BINDIR']);
+
+ $dotenv = new \Symfony\Component\Dotenv\Dotenv();
+ $dotenv->load(CONST_DataDir.'/settings/env.defaults');
+
+ if (file_exists($sProjectDir.'/.env')) {
+ $dotenv->load($sProjectDir.'/.env');
+ }
+}
+
+function getSetting($sConfName, $sDefault = null)
+{
+ $sValue = $_SERVER['NOMINATIM_'.$sConfName];
+
+ if ($sDefault !== null && !$sValue) {
+ return $sDefault;
+ }
+
+ return $sValue;
+}
+
+function getSettingBool($sConfName)
+{
+ $sVal = strtolower(getSetting($sConfName));
+
+ return strcmp($sVal, 'yes') == 0
+ || strcmp($sVal, 'true') == 0
+ || strcmp($sVal, '1') == 0;
+}
+
+function getSettingConfig($sConfName, $sSystemConfig)
+{
+ $sValue = $_ENV['NOMINATIM_'.$sConfName];
+
+ if (!$sValue) {
+ return CONST_DataDir.'/settings/'.$sSystemConfig;
+ }
+
+ return $sValue;
+}
+