]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/lib.php
switch remaining settings to dotenv format
[nominatim.git] / lib / lib.php
index c4fbca308636e60e0cd0e59a27fc63eb517b7597..9f266aeb615933572783a59f6b802d32cb5af8ab 100644 (file)
@@ -1,5 +1,54 @@
 <?php
 
+require('Symfony/Component/Dotenv/autoload.php');
+
+function loadSettings($sProjectDir)
+{
+    if (!$sProjectDir) {
+        $sProjectDir = getcwd();
+    }
+
+    @define('CONST_InstallDir', $sProjectDir);
+
+    $dotenv = new \Symfony\Component\Dotenv\Dotenv();
+
+    if (file_exists($sProjectDir.'/.env')) {
+        $dotenv->load($sProjectDir.'/.env');
+    }
+    $dotenv->load(CONST_DataDir.'/settings/env.defaults');
+}
+
+function getSetting($sConfName, $sDefault = null)
+{
+    $sValue = $_ENV['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;
+}
+
 function fail($sError, $sUserError = false)
 {
     if (!$sUserError) $sUserError = $sError;
@@ -55,7 +104,7 @@ function byImportance($a, $b)
     if ($a['importance'] != $b['importance'])
         return ($a['importance'] > $b['importance']?-1:1);
 
-    return ($a['foundorder'] < $b['foundorder']?-1:1);
+    return $a['foundorder'] <=> $b['foundorder'];
 }