]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib-php/Shell.php
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / lib-php / Shell.php
index 72f90735e9763e798cb354155e8b077b37666f7e..4bec20e9c35af04d6e6bfe17615e4eaf2a786cea 100644 (file)
@@ -33,7 +33,9 @@ class Shell
     public function addEnvPair($sKey, $sVal)
     {
         if (isset($sKey) && $sKey && isset($sVal)) {
-            if (!isset($this->aEnv)) $this->aEnv = $_ENV;
+            if (!isset($this->aEnv)) {
+                $this->aEnv = $_ENV;
+            }
             $this->aEnv = array_merge($this->aEnv, array($sKey => $sVal), $_ENV);
         }
         return $this;
@@ -48,7 +50,7 @@ class Shell
         return join(' ', $aEscaped);
     }
 
-    public function run()
+    public function run($bExitOnFail = false)
     {
         $sCmd = $this->escapedCmd();
         // $aEnv does not need escaping, proc_open seems to handle it fine
@@ -67,14 +69,16 @@ class Shell
         fclose($aPipes[0]); // no stdin
 
         $iStat = proc_close($hProc);
-        return $iStat;
-    }
 
+        if ($iStat != 0 && $bExitOnFail) {
+            exit($iStat);
+        }
 
+        return $iStat;
+    }
 
     private function escapeParam($sParam)
     {
-        if (preg_match('/^-*\w+$/', $sParam)) return $sParam;
-        return escapeshellarg($sParam);
+        return (preg_match('/^-*\w+$/', $sParam)) ? $sParam : escapeshellarg($sParam);
     }
 }