]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/cmd.php
Work on setup/update scripts, unit tests, and documentation to enable Postgres server...
[nominatim.git] / lib / cmd.php
index 1edf5dfd5c53d077b03453cfcf5192b0ac54b4a8..8ccbb036586b73e861359320b91408cf6f32f905 100644 (file)
@@ -134,7 +134,7 @@ function info($sMsg)
     echo date('Y-m-d H:i:s == ').$sMsg."\n";
 }
 
     echo date('Y-m-d H:i:s == ').$sMsg."\n";
 }
 
-$aWarnings = [];
+$aWarnings = array();
 
 
 function warn($sMsg)
 
 
 function warn($sMsg)
@@ -158,6 +158,16 @@ function runSQLScript($sScript, $bfatal = true, $bVerbose = false, $bIgnoreError
     $aDSNInfo = DB::parseDSN(CONST_Database_DSN);
     if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
     $sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
     $aDSNInfo = DB::parseDSN(CONST_Database_DSN);
     if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
     $sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
+    if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
+        $sCMD .= ' -h ' . $aDSNInfo['hostspec'];
+    }
+    if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
+        $sCMD .= ' -U ' . $aDSNInfo['username'];
+    }
+    $procenv = null;
+    if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
+        $procenv = array_merge(array('PGPASSWORD' => $aDSNInfo['password']), $_ENV);
+    }
     if (!$bVerbose) {
         $sCMD .= ' -q';
     }
     if (!$bVerbose) {
         $sCMD .= ' -q';
     }
@@ -170,7 +180,7 @@ function runSQLScript($sScript, $bfatal = true, $bVerbose = false, $bIgnoreError
                      2 => STDERR
                     );
     $ahPipes = null;
                      2 => STDERR
                     );
     $ahPipes = null;
-    $hProcess = @proc_open($sCMD, $aDescriptors, $ahPipes);
+    $hProcess = @proc_open($sCMD, $aDescriptors, $ahPipes, null, $procenv);
     if (!is_resource($hProcess)) {
         fail('unable to start pgsql');
     }
     if (!is_resource($hProcess)) {
         fail('unable to start pgsql');
     }