X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/80f6aca0c22984b79e24a19bc602258dd3caeb34..fdd20a76bdba7b1115361e337aff661ed830b11f:/lib-php/cmd.php diff --git a/lib-php/cmd.php b/lib-php/cmd.php index 5a12f99a..922193bc 100644 --- a/lib-php/cmd.php +++ b/lib-php/cmd.php @@ -1,4 +1,12 @@ = $iSize || $aArg[$i][0] == '-') showUsage($aSpec, $bExitOnError, 'Parameter of \''.$aLine[0].'\' is missing'); + if ($i >= $iSize || $aArg[$i][0] == '-') { + showUsage($aSpec, $bExitOnError, 'Parameter of \''.$aLine[0].'\' is missing'); + } switch ($aLine[6]) { case 'realpath': @@ -56,7 +70,9 @@ function getCmdOpt($aArg, $aSpec, &$aResult, $bExitOnError = false, $bExitOnUnkn break; } } - if ($aLine[4] == 1) $xVal = $xVal[0]; + if ($aLine[4] == 1) { + $xVal = $xVal[0]; + } } else { $xVal = true; } @@ -65,7 +81,9 @@ function getCmdOpt($aArg, $aSpec, &$aResult, $bExitOnError = false, $bExitOnUnkn } if ($aLine[3] > 1) { - if (!array_key_exists($aLine[0], $aResult)) $aResult[$aLine[0]] = array(); + if (!array_key_exists($aLine[0], $aResult)) { + $aResult[$aLine[0]] = array(); + } $aResult[$aLine[0]][] = $xVal; } else { $aResult[$aLine[0]] = $xVal; @@ -75,18 +93,23 @@ function getCmdOpt($aArg, $aSpec, &$aResult, $bExitOnError = false, $bExitOnUnkn } } - if (array_key_exists('help', $aResult)) showUsage($aSpec); - if ($bUnknown && $bExitOnUnknown) showUsage($aSpec, $bExitOnError, 'Unknown option \''.$bUnknown.'\''); + if (array_key_exists('help', $aResult)) { + showUsage($aSpec); + } + if ($bUnknown && $bExitOnUnknown) { + showUsage($aSpec, $bExitOnError, 'Unknown option \''.$bUnknown.'\''); + } foreach ($aSpec as $aLine) { if (is_array($aLine)) { - if ($aCounts[$aLine[0]] < $aLine[2]) showUsage($aSpec, $bExitOnError, 'Option \''.$aLine[0].'\' is missing'); - if ($aCounts[$aLine[0]] > $aLine[3]) showUsage($aSpec, $bExitOnError, 'Option \''.$aLine[0].'\' is pressent too many times'); - switch ($aLine[6]) { - case 'bool': - if (!array_key_exists($aLine[0], $aResult)) - $aResult[$aLine[0]] = false; - break; + if ($aCounts[$aLine[0]] < $aLine[2]) { + showUsage($aSpec, $bExitOnError, 'Option \''.$aLine[0].'\' is missing'); + } + if ($aCounts[$aLine[0]] > $aLine[3]) { + showUsage($aSpec, $bExitOnError, 'Option \''.$aLine[0].'\' is pressent too many times'); + } + if ($aLine[6] == 'bool' && !array_key_exists($aLine[0], $aResult)) { + $aResult[$aLine[0]] = false; } } } @@ -109,8 +132,12 @@ function showUsage($aSpec, $bExit = false, $sError = false) echo "\n"; } $aNames = array(); - if ($aLine[1]) $aNames[] = '-'.$aLine[1]; - if ($aLine[0]) $aNames[] = '--'.$aLine[0]; + if ($aLine[1]) { + $aNames[] = '-'.$aLine[1]; + } + if ($aLine[0]) { + $aNames[] = '--'.$aLine[0]; + } $sName = join(', ', $aNames); echo ' '.$sName.str_repeat(' ', 30-strlen($sName)).$aLine[7]."\n"; } else { @@ -144,58 +171,6 @@ function repeatWarnings() } -function runSQLScript($sScript, $bfatal = true, $bVerbose = false, $bIgnoreErrors = false) -{ - // Convert database DSN to psql parameters - $aDSNInfo = \Nominatim\DB::parseDSN(getSetting('DATABASE_DSN')); - if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432; - - $oCmd = new \Nominatim\Shell('psql'); - $oCmd->addParams('--port', $aDSNInfo['port']); - $oCmd->addParams('--dbname', $aDSNInfo['database']); - if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) { - $oCmd->addParams('--host', $aDSNInfo['hostspec']); - } - if (isset($aDSNInfo['username']) && $aDSNInfo['username']) { - $oCmd->addParams('--username', $aDSNInfo['username']); - } - if (isset($aDSNInfo['password'])) { - $oCmd->addEnvPair('PGPASSWORD', $aDSNInfo['password']); - } - if (!$bVerbose) { - $oCmd->addParams('--quiet'); - } - if ($bfatal && !$bIgnoreErrors) { - $oCmd->addParams('-v', 'ON_ERROR_STOP=1'); - } - - $aDescriptors = array( - 0 => array('pipe', 'r'), - 1 => STDOUT, - 2 => STDERR - ); - $ahPipes = null; - $hProcess = @proc_open($oCmd->escapedCmd(), $aDescriptors, $ahPipes, null, $oCmd->aEnv); - if (!is_resource($hProcess)) { - fail('unable to start pgsql'); - } - - if (!$bVerbose) { - fwrite($ahPipes[0], 'set client_min_messages to WARNING;'); - } - - while (strlen($sScript)) { - $iWritten = fwrite($ahPipes[0], $sScript); - if ($iWritten <= 0) break; - $sScript = substr($sScript, $iWritten); - } - fclose($ahPipes[0]); - $iReturn = proc_close($hProcess); - if ($bfatal && $iReturn > 0) { - fail("pgsql returned with error code ($iReturn)"); - } -} - function setupHTTPProxy() { if (!getSettingBool('HTTP_PROXY')) {