exit(1);
}
- // Try accessing the C module, so we know early if something is wrong
- // and can simply error out.
- $sSQL = "CREATE FUNCTION nominatim_test_import_func(text) RETURNS text AS '";
- $sSQL .= $sModulePath."/nominatim.so', 'transliteration' LANGUAGE c IMMUTABLE STRICT";
- $sSQL .= ';DROP FUNCTION nominatim_test_import_func(text);';
- $oResult = $oDB->query($sSQL);
-
- if (PEAR::isError($oResult)) {
- echo "\nERROR: Failed to load nominatim module. Reason:\n";
- echo $oResult->userinfo."\n\n";
- exit(1);
+ if (!checkModulePresence()) {
+ fail('error loading nominatim.so module');
}
if (!file_exists(CONST_ExtraDataPath.'/country_osm_grid.sql.gz')) {
if ($aCMDResult['create-functions'] || $aCMDResult['all']) {
info('Create Functions');
$bDidSomething = true;
+
+ if (!checkModulePresence()) {
+ fail('error loading nominatim.so module');
+ }
+
create_sql_functions($aCMDResult);
}
}
pgsqlRunScript($sTemplate);
}
+
+function checkModulePresence()
+{
+ // Try accessing the C module, so we know early if something is wrong
+ // and can simply error out.
+ $sSQL = "CREATE FUNCTION nominatim_test_import_func(text) RETURNS text AS '";
+ $sSQL .= $sModulePath."/nominatim.so', 'transliteration' LANGUAGE c IMMUTABLE STRICT";
+ $sSQL .= ';DROP FUNCTION nominatim_test_import_func(text);';
+ $oResult = $oDB->query($sSQL);
+
+ $bResult = true;
+
+ if (PEAR::isError($oResult)) {
+ echo "\nERROR: Failed to load nominatim module. Reason:\n";
+ echo $oResult->userinfo."\n\n";
+ $bResult = false;
+ }
+
+ return $bResult;
+}
array('init-updates', '', 0, 1, 0, 0, 'bool', 'Set up database for updating'),
array('check-for-updates', '', 0, 1, 0, 0, 'bool', 'Check if new updates are available'),
- array('update-functions', '', 0, 1, 0, 0, 'bool', 'Update trigger functions to support differential updates'),
+ array('no-update-functions', '', 0, 1, 0, 0, 'bool', 'Do not update trigger functions to support differential updates (assuming the diff update logic is already present)'),
array('import-osmosis', '', 0, 1, 0, 0, 'bool', 'Import updates once'),
array('import-osmosis-all', '', 0, 1, 0, 0, 'bool', 'Import updates forever'),
array('no-index', '', 0, 1, 0, 0, 'bool', 'Do not index the new data'),
echo "and have set up CONST_Pyosmium_Binary to point to pyosmium-get-changes.\n";
fail('pyosmium-get-changes not found or not usable');
}
- if ($aResult['update-functions']) {
+ if (!$aResult['no-update-functions']) {
$sSetup = CONST_InstallPath.'/utils/setup.php';
$iRet = -1;
- passthru($argv[0].' '.$sSetup.' --create-functions --enable-diff-updates', $iRet);
+ passthru($sSetup.' --create-functions --enable-diff-updates', $iRet);
if ($iRet != 0) {
fail('Error running setup script');
}