X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/db3ced17bbfff00411f506d8c84419c875959d5e..27af9b102c2d6167b9025d594f8cb75e4dd76a03:/lib-php/Shell.php diff --git a/lib-php/Shell.php b/lib-php/Shell.php index 72f90735..4bec20e9 100644 --- a/lib-php/Shell.php +++ b/lib-php/Shell.php @@ -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); } }