reorganise path settings in config

CONST_BasePath is split into separate configuration variables
for binaries, libraries and data. These variables as well as
the installation path are now set in the executable directly and
no longer configurable via project settings.

This is the first step towards an installable software. The
executables should know per installation where to find their
necessary data to execute. Project configuration needs to be
restricted to settings that really concern the specific Nominatim
installation.
This commit is contained in:
Sarah Hoffmann
2020-12-15 10:09:55 +01:00
parent 17a8cc5e29
commit b5480f6e36
33 changed files with 150 additions and 152 deletions

View File

@@ -96,20 +96,20 @@ endif()
if (BUILD_IMPORTER) if (BUILD_IMPORTER)
set(CUSTOMSCRIPTS set(CUSTOMSCRIPTS
utils/check_import_finished.php check_import_finished.php
utils/country_languages.php country_languages.php
utils/importWikipedia.php importWikipedia.php
utils/export.php export.php
utils/query.php query.php
utils/setup.php setup.php
utils/specialphrases.php specialphrases.php
utils/update.php update.php
utils/warm.php warm.php
) )
foreach (script_source ${CUSTOMSCRIPTS}) foreach (script_source ${CUSTOMSCRIPTS})
configure_file(${PROJECT_SOURCE_DIR}/cmake/script.tmpl configure_file(${PROJECT_SOURCE_DIR}/cmake/script.tmpl
${PROJECT_BINARY_DIR}/${script_source}) ${PROJECT_BINARY_DIR}/utils/${script_source})
endforeach() endforeach()
endif() endif()
@@ -119,27 +119,20 @@ endif()
if (BUILD_API) if (BUILD_API)
set(WEBSITESCRIPTS set(WEBSITESCRIPTS
website/deletable.php deletable.php
website/details.php details.php
website/lookup.php lookup.php
website/polygons.php polygons.php
website/reverse.php reverse.php
website/search.php search.php
website/status.php status.php
) )
foreach (script_source ${WEBSITESCRIPTS}) foreach (script_source ${WEBSITESCRIPTS})
configure_file(${PROJECT_SOURCE_DIR}/cmake/website.tmpl configure_file(${PROJECT_SOURCE_DIR}/cmake/website.tmpl
${PROJECT_BINARY_DIR}/${script_source}) ${PROJECT_BINARY_DIR}/website/${script_source})
endforeach() endforeach()
set(WEBPATHS css images js)
foreach (wp ${WEBPATHS})
execute_process(
COMMAND ln -sf ${PROJECT_SOURCE_DIR}/website/${wp} ${PROJECT_BINARY_DIR}/website/
)
endforeach()
add_custom_target(serve add_custom_target(serve
php -S 127.0.0.1:8088 php -S 127.0.0.1:8088

View File

@@ -1,4 +1,9 @@
#!@PHP_BIN@ -Cq #!@PHP_BIN@ -Cq
<?php <?php
require_once(dirname(dirname(__FILE__)).'/settings/settings.php'); @define('CONST_BinDir', '@CMAKE_SOURCE_DIR@/utils');
require_once(CONST_BasePath.'/@script_source@'); @define('CONST_LibDir', '@CMAKE_SOURCE_DIR@/lib');
@define('CONST_DataDir', '@CMAKE_SOURCE_DIR@');
@define('CONST_InstallDir', '@CMAKE_BINARY_DIR@');
require_once(CONST_InstallDir.'/settings/settings.php');
require_once(CONST_BinDir.'/@script_source@');

View File

@@ -1,5 +1,8 @@
<?php <?php
@define('CONST_Debug', (isset($_GET['debug']) && $_GET['debug'])); @define('CONST_Debug', (isset($_GET['debug']) && $_GET['debug']));
require_once(dirname(dirname(__FILE__)).'/settings/settings-frontend.php'); @define('CONST_LibDir', '@CMAKE_SOURCE_DIR@/lib');
@define('CONST_DataDir', '@CMAKE_SOURCE_DIR@');
@define('CONST_InstallDir', '@CMAKE_BINARY_DIR@');
require_once(CONST_InstallDir.'/settings/settings-frontend.php');
require_once(CONST_BasePath.'/@script_source@'); require_once('@CMAKE_SOURCE_DIR@/website/@script_source@');

View File

@@ -2,7 +2,7 @@
namespace Nominatim; namespace Nominatim;
require_once(CONST_BasePath.'/lib/ClassTypes.php'); require_once(CONST_LibDir.'/ClassTypes.php');
/** /**
* Detailed list of address parts for a single result * Detailed list of address parts for a single result

View File

@@ -2,7 +2,7 @@
namespace Nominatim; namespace Nominatim;
require_once(CONST_BasePath.'/lib/DatabaseError.php'); require_once(CONST_LibDir.'/DatabaseError.php');
/** /**
* Uses PDO to access the database specified in the CONST_Database_DSN * Uses PDO to access the database specified in the CONST_Database_DSN

View File

@@ -2,12 +2,12 @@
namespace Nominatim; namespace Nominatim;
require_once(CONST_BasePath.'/lib/PlaceLookup.php'); require_once(CONST_LibDir.'/PlaceLookup.php');
require_once(CONST_BasePath.'/lib/Phrase.php'); require_once(CONST_LibDir.'/Phrase.php');
require_once(CONST_BasePath.'/lib/ReverseGeocode.php'); require_once(CONST_LibDir.'/ReverseGeocode.php');
require_once(CONST_BasePath.'/lib/SearchDescription.php'); require_once(CONST_LibDir.'/SearchDescription.php');
require_once(CONST_BasePath.'/lib/SearchContext.php'); require_once(CONST_LibDir.'/SearchContext.php');
require_once(CONST_BasePath.'/lib/TokenList.php'); require_once(CONST_LibDir.'/TokenList.php');
class Geocode class Geocode
{ {

View File

@@ -2,8 +2,8 @@
namespace Nominatim; namespace Nominatim;
require_once(CONST_BasePath.'/lib/AddressDetails.php'); require_once(CONST_LibDir.'/AddressDetails.php');
require_once(CONST_BasePath.'/lib/Result.php'); require_once(CONST_LibDir.'/Result.php');
class PlaceLookup class PlaceLookup
{ {

View File

@@ -2,7 +2,7 @@
namespace Nominatim; namespace Nominatim;
require_once(CONST_BasePath.'/lib/Result.php'); require_once(CONST_LibDir.'/Result.php');
class ReverseGeocode class ReverseGeocode
{ {

View File

@@ -2,7 +2,7 @@
namespace Nominatim; namespace Nominatim;
require_once(CONST_BasePath.'/lib/lib.php'); require_once(CONST_LibDir.'/lib.php');
/** /**

View File

@@ -2,9 +2,9 @@
namespace Nominatim; namespace Nominatim;
require_once(CONST_BasePath.'/lib/SpecialSearchOperator.php'); require_once(CONST_LibDir.'/SpecialSearchOperator.php');
require_once(CONST_BasePath.'/lib/SearchContext.php'); require_once(CONST_LibDir.'/SearchContext.php');
require_once(CONST_BasePath.'/lib/Result.php'); require_once(CONST_LibDir.'/Result.php');
/** /**
* Description of a single interpretation of a search query. * Description of a single interpretation of a search query.

View File

@@ -2,12 +2,12 @@
namespace Nominatim; namespace Nominatim;
require_once(CONST_BasePath.'/lib/TokenCountry.php'); require_once(CONST_LibDir.'/TokenCountry.php');
require_once(CONST_BasePath.'/lib/TokenHousenumber.php'); require_once(CONST_LibDir.'/TokenHousenumber.php');
require_once(CONST_BasePath.'/lib/TokenPostcode.php'); require_once(CONST_LibDir.'/TokenPostcode.php');
require_once(CONST_BasePath.'/lib/TokenSpecialTerm.php'); require_once(CONST_LibDir.'/TokenSpecialTerm.php');
require_once(CONST_BasePath.'/lib/TokenWord.php'); require_once(CONST_LibDir.'/TokenWord.php');
require_once(CONST_BasePath.'/lib/SpecialSearchOperator.php'); require_once(CONST_LibDir.'/SpecialSearchOperator.php');
/** /**
* Saves information about the tokens that appear in a search query. * Saves information about the tokens that appear in a search query.

View File

@@ -2,7 +2,7 @@
namespace Nominatim\Token; namespace Nominatim\Token;
require_once(CONST_BasePath.'/lib/SpecialSearchOperator.php'); require_once(CONST_LibDir.'/SpecialSearchOperator.php');
/** /**
* A word token describing a place type. * A word token describing a place type.

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once(CONST_BasePath.'/lib/Shell.php'); require_once(CONST_LibDir.'/Shell.php');
function getCmdOpt($aArg, $aSpec, &$aResult, $bExitOnError = false, $bExitOnUnknown = false) function getCmdOpt($aArg, $aSpec, &$aResult, $bExitOnError = false, $bExitOnUnknown = false)
{ {

View File

@@ -20,7 +20,7 @@ function exception_handler_json($exception)
{ {
http_response_code($exception->getCode()); http_response_code($exception->getCode());
header('Content-type: application/json; charset=utf-8'); header('Content-type: application/json; charset=utf-8');
include(CONST_BasePath.'/lib/template/error-json.php'); include(CONST_LibDir.'/template/error-json.php');
exit(); exit();
} }
@@ -29,7 +29,7 @@ function exception_handler_xml($exception)
http_response_code($exception->getCode()); http_response_code($exception->getCode());
header('Content-type: text/xml; charset=utf-8'); header('Content-type: text/xml; charset=utf-8');
echo '<?xml version="1.0" encoding="UTF-8" ?>'."\n"; echo '<?xml version="1.0" encoding="UTF-8" ?>'."\n";
include(CONST_BasePath.'/lib/template/error-xml.php'); include(CONST_LibDir.'/template/error-xml.php');
exit(); exit();
} }

View File

@@ -1,4 +1,4 @@
<?php <?php
require_once(CONST_BasePath.'/lib/lib.php'); require_once(CONST_LibDir.'/lib.php');
require_once(CONST_BasePath.'/lib/DB.php'); require_once(CONST_LibDir.'/DB.php');

View File

@@ -2,8 +2,8 @@
namespace Nominatim\Setup; namespace Nominatim\Setup;
require_once(CONST_BasePath.'/lib/setup/AddressLevelParser.php'); require_once(CONST_LibDir.'/setup/AddressLevelParser.php');
require_once(CONST_BasePath.'/lib/Shell.php'); require_once(CONST_LibDir.'/Shell.php');
class SetupFunctions class SetupFunctions
{ {
@@ -140,24 +140,24 @@ class SetupFunctions
// Try accessing the C module, so we know early if something is wrong // Try accessing the C module, so we know early if something is wrong
checkModulePresence(); // raises exception on failure checkModulePresence(); // raises exception on failure
if (!file_exists(CONST_ExtraDataPath.'/country_osm_grid.sql.gz')) { if (!file_exists(CONST_DataDir.'/data/country_osm_grid.sql.gz')) {
echo 'Error: you need to download the country_osm_grid first:'; echo 'Error: you need to download the country_osm_grid first:';
echo "\n wget -O ".CONST_ExtraDataPath."/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz\n"; echo "\n wget -O ".CONST_DataDir."/data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz\n";
exit(1); exit(1);
} }
$this->pgsqlRunScriptFile(CONST_BasePath.'/data/country_name.sql'); $this->pgsqlRunScriptFile(CONST_DataDir.'/data/country_name.sql');
$this->pgsqlRunScriptFile(CONST_ExtraDataPath.'/country_osm_grid.sql.gz'); $this->pgsqlRunScriptFile(CONST_DataDir.'/data/country_osm_grid.sql.gz');
$this->pgsqlRunScriptFile(CONST_BasePath.'/data/gb_postcode_table.sql'); $this->pgsqlRunScriptFile(CONST_DataDir.'/data/gb_postcode_table.sql');
$this->pgsqlRunScriptFile(CONST_BasePath.'/data/us_postcode_table.sql'); $this->pgsqlRunScriptFile(CONST_DataDir.'/data/us_postcode_table.sql');
$sPostcodeFilename = CONST_BasePath.'/data/gb_postcode_data.sql.gz'; $sPostcodeFilename = CONST_DataDir.'/data/gb_postcode_data.sql.gz';
if (file_exists($sPostcodeFilename)) { if (file_exists($sPostcodeFilename)) {
$this->pgsqlRunScriptFile($sPostcodeFilename); $this->pgsqlRunScriptFile($sPostcodeFilename);
} else { } else {
warn('optional external GB postcode table file ('.$sPostcodeFilename.') not found. Skipping.'); warn('optional external GB postcode table file ('.$sPostcodeFilename.') not found. Skipping.');
} }
$sPostcodeFilename = CONST_BasePath.'/data/us_postcode_data.sql.gz'; $sPostcodeFilename = CONST_DataDir.'/data/us_postcode_data.sql.gz';
if (file_exists($sPostcodeFilename)) { if (file_exists($sPostcodeFilename)) {
$this->pgsqlRunScriptFile($sPostcodeFilename); $this->pgsqlRunScriptFile($sPostcodeFilename);
} else { } else {
@@ -243,7 +243,7 @@ class SetupFunctions
{ {
info('Create Tables'); info('Create Tables');
$sTemplate = file_get_contents(CONST_BasePath.'/sql/tables.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/tables.sql');
$sTemplate = $this->replaceSqlPatterns($sTemplate); $sTemplate = $this->replaceSqlPatterns($sTemplate);
$this->pgsqlRunScript($sTemplate, false); $this->pgsqlRunScript($sTemplate, false);
@@ -260,7 +260,7 @@ class SetupFunctions
{ {
info('Create Tables'); info('Create Tables');
$sTemplate = file_get_contents(CONST_BasePath.'/sql/table-triggers.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/table-triggers.sql');
$sTemplate = $this->replaceSqlPatterns($sTemplate); $sTemplate = $this->replaceSqlPatterns($sTemplate);
$this->pgsqlRunScript($sTemplate, false); $this->pgsqlRunScript($sTemplate, false);
@@ -270,7 +270,7 @@ class SetupFunctions
{ {
info('Create Partition Tables'); info('Create Partition Tables');
$sTemplate = file_get_contents(CONST_BasePath.'/sql/partition-tables.src.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/partition-tables.src.sql');
$sTemplate = $this->replaceSqlPatterns($sTemplate); $sTemplate = $this->replaceSqlPatterns($sTemplate);
$this->pgsqlRunPartitionScript($sTemplate); $this->pgsqlRunPartitionScript($sTemplate);
@@ -280,7 +280,7 @@ class SetupFunctions
{ {
info('Create Partition Functions'); info('Create Partition Functions');
$sTemplate = file_get_contents(CONST_BasePath.'/sql/partition-functions.src.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/partition-functions.src.sql');
$this->pgsqlRunPartitionScript($sTemplate); $this->pgsqlRunPartitionScript($sTemplate);
} }
@@ -342,7 +342,7 @@ class SetupFunctions
// pre-create the word list // pre-create the word list
if (!$bDisableTokenPrecalc) { if (!$bDisableTokenPrecalc) {
info('Loading word list'); info('Loading word list');
$this->pgsqlRunScriptFile(CONST_BasePath.'/data/words.sql'); $this->pgsqlRunScriptFile(CONST_DataDir.'/data/words.sql');
} }
info('Load Data'); info('Load Data');
@@ -434,7 +434,7 @@ class SetupFunctions
warn('Tiger data import selected but no files found in path '.CONST_Tiger_Data_Path); warn('Tiger data import selected but no files found in path '.CONST_Tiger_Data_Path);
return; return;
} }
$sTemplate = file_get_contents(CONST_BasePath.'/sql/tiger_import_start.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/tiger_import_start.sql');
$sTemplate = $this->replaceSqlPatterns($sTemplate); $sTemplate = $this->replaceSqlPatterns($sTemplate);
$this->pgsqlRunScript($sTemplate, false); $this->pgsqlRunScript($sTemplate, false);
@@ -488,7 +488,7 @@ class SetupFunctions
} }
info('Creating indexes on Tiger data'); info('Creating indexes on Tiger data');
$sTemplate = file_get_contents(CONST_BasePath.'/sql/tiger_import_finish.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/tiger_import_finish.sql');
$sTemplate = $this->replaceSqlPatterns($sTemplate); $sTemplate = $this->replaceSqlPatterns($sTemplate);
$this->pgsqlRunScript($sTemplate, false); $this->pgsqlRunScript($sTemplate, false);
@@ -544,7 +544,7 @@ class SetupFunctions
{ {
checkModulePresence(); // raises exception on failure checkModulePresence(); // raises exception on failure
$oBaseCmd = (new \Nominatim\Shell(CONST_BasePath.'/nominatim/nominatim.py')) $oBaseCmd = (new \Nominatim\Shell(CONST_DataDir.'/nominatim/nominatim.py'))
->addParams('--database', $this->aDSNInfo['database']) ->addParams('--database', $this->aDSNInfo['database'])
->addParams('--port', $this->aDSNInfo['port']) ->addParams('--port', $this->aDSNInfo['port'])
->addParams('--threads', $this->iInstances); ->addParams('--threads', $this->iInstances);
@@ -616,12 +616,12 @@ class SetupFunctions
$this->db()->exec("DROP INDEX $sIndexName;"); $this->db()->exec("DROP INDEX $sIndexName;");
} }
$sTemplate = file_get_contents(CONST_BasePath.'/sql/indices.src.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/indices.src.sql');
if (!$this->bDrop) { if (!$this->bDrop) {
$sTemplate .= file_get_contents(CONST_BasePath.'/sql/indices_updates.src.sql'); $sTemplate .= file_get_contents(CONST_DataDir.'/sql/indices_updates.src.sql');
} }
if (!$this->dbReverseOnly()) { if (!$this->dbReverseOnly()) {
$sTemplate .= file_get_contents(CONST_BasePath.'/sql/indices_search.src.sql'); $sTemplate .= file_get_contents(CONST_DataDir.'/sql/indices_search.src.sql');
} }
$sTemplate = $this->replaceSqlPatterns($sTemplate); $sTemplate = $this->replaceSqlPatterns($sTemplate);
@@ -709,10 +709,9 @@ class SetupFunctions
*/ */
public function setupWebsite() public function setupWebsite()
{ {
$rOutputFile = fopen(CONST_InstallPath.'/settings/settings-frontend.php', 'w'); $rOutputFile = fopen(CONST_InstallDir.'/settings/settings-frontend.php', 'w');
fwrite($rOutputFile, "<?php fwrite($rOutputFile, "<?php
@define('CONST_BasePath', '".CONST_BasePath."');
if (file_exists(getenv('NOMINATIM_SETTINGS'))) require_once(getenv('NOMINATIM_SETTINGS')); if (file_exists(getenv('NOMINATIM_SETTINGS'))) require_once(getenv('NOMINATIM_SETTINGS'));
@define('CONST_Database_DSN', '".CONST_Database_DSN."'); @define('CONST_Database_DSN', '".CONST_Database_DSN."');
@@ -732,7 +731,7 @@ if (file_exists(getenv('NOMINATIM_SETTINGS'))) require_once(getenv('NOMINATIM_SE
@define('CONST_Use_US_Tiger_Data', ".(CONST_Use_US_Tiger_Data ? 'true' : 'false')."); @define('CONST_Use_US_Tiger_Data', ".(CONST_Use_US_Tiger_Data ? 'true' : 'false').");
@define('CONST_MapIcon_URL', ".(CONST_MapIcon_URL ? ("'".CONST_MapIcon_URL."'") : 'false').'); @define('CONST_MapIcon_URL', ".(CONST_MapIcon_URL ? ("'".CONST_MapIcon_URL."'") : 'false').');
'); ');
info(CONST_InstallPath.'/settings/settings-frontend.php has been set up successfully'); info(CONST_InstallDir.'/settings/settings-frontend.php has been set up successfully');
} }
/** /**
@@ -775,7 +774,7 @@ if (file_exists(getenv('NOMINATIM_SETTINGS'))) require_once(getenv('NOMINATIM_SE
private function createSqlFunctions() private function createSqlFunctions()
{ {
$sBasePath = CONST_BasePath.'/sql/functions/'; $sBasePath = CONST_DataDir.'/sql/functions/';
$sTemplate = file_get_contents($sBasePath.'utils.sql'); $sTemplate = file_get_contents($sBasePath.'utils.sql');
$sTemplate .= file_get_contents($sBasePath.'normalization.sql'); $sTemplate .= file_get_contents($sBasePath.'normalization.sql');
$sTemplate .= file_get_contents($sBasePath.'ranking.sql'); $sTemplate .= file_get_contents($sBasePath.'ranking.sql');

View File

@@ -1,13 +1,11 @@
<?php <?php
@define('CONST_BasePath', '@CMAKE_SOURCE_DIR@');
@define('CONST_InstallPath', '@CMAKE_BINARY_DIR@');
if (file_exists(getenv('NOMINATIM_SETTINGS'))) require_once(getenv('NOMINATIM_SETTINGS')); if (file_exists(getenv('NOMINATIM_SETTINGS'))) require_once(getenv('NOMINATIM_SETTINGS'));
if (file_exists(CONST_InstallPath.'/settings/local.php')) require_once(CONST_InstallPath.'/settings/local.php'); if (file_exists(CONST_InstallDir.'/settings/local.php')) require_once(CONST_InstallDir.'/settings/local.php');
// General settings // General settings
@define('CONST_Database_DSN', 'pgsql:dbname=nominatim'); // or add ;host=...;port=...;user=...;password=... @define('CONST_Database_DSN', 'pgsql:dbname=nominatim'); // or add ;host=...;port=...;user=...;password=...
@define('CONST_Database_Web_User', 'www-data'); @define('CONST_Database_Web_User', 'www-data');
@define('CONST_Database_Module_Path', CONST_InstallPath.'/module'); @define('CONST_Database_Module_Path', CONST_InstallDir.'/module');
@define('CONST_Max_Word_Frequency', '50000'); @define('CONST_Max_Word_Frequency', '50000');
@define('CONST_Limit_Reindexing', true); @define('CONST_Limit_Reindexing', true);
// Restrict search languages. // Restrict search languages.
@@ -40,14 +38,13 @@ if (file_exists(CONST_InstallPath.'/settings/local.php')) require_once(CONST_Ins
@define('CONST_HTTP_Proxy_Password', ''); @define('CONST_HTTP_Proxy_Password', '');
// Paths // Paths
@define('CONST_ExtraDataPath', CONST_BasePath.'/data'); @define('CONST_Osm2pgsql_Binary', CONST_InstallDir.'/osm2pgsql/osm2pgsql');
@define('CONST_Osm2pgsql_Binary', CONST_InstallPath.'/osm2pgsql/osm2pgsql');
@define('CONST_Pyosmium_Binary', '@PYOSMIUM_PATH@'); @define('CONST_Pyosmium_Binary', '@PYOSMIUM_PATH@');
@define('CONST_Tiger_Data_Path', CONST_ExtraDataPath.'/tiger'); @define('CONST_Tiger_Data_Path', CONST_DataDir.'/data/tiger');
@define('CONST_Wikipedia_Data_Path', CONST_ExtraDataPath); @define('CONST_Wikipedia_Data_Path', CONST_DataDir);
@define('CONST_Phrase_Config', CONST_BasePath.'/settings/phrase_settings.php'); @define('CONST_Phrase_Config', CONST_DataDir.'/settings/phrase_settings.php');
@define('CONST_Address_Level_Config', CONST_BasePath.'/settings/address-levels.json'); @define('CONST_Address_Level_Config', CONST_DataDir.'/settings/address-levels.json');
@define('CONST_Import_Style', CONST_BasePath.'/settings/import-full.style'); @define('CONST_Import_Style', CONST_DataDir.'/settings/import-full.style');
// osm2pgsql settings // osm2pgsql settings
@define('CONST_Osm2pgsql_Flatnode_File', null); @define('CONST_Osm2pgsql_Flatnode_File', null);

View File

@@ -82,7 +82,8 @@ class NominatimEnvironment(object):
(';password=' + self.db_pass) if self.db_pass else '' (';password=' + self.db_pass) if self.db_pass else ''
)) ))
f.write("@define('CONST_Osm2pgsql_Flatnode_File', null);\n") f.write("@define('CONST_Osm2pgsql_Flatnode_File', null);\n")
f.write("@define('CONST_Import_Style', CONST_BasePath.'/settings/import-full.style');\n") f.write("@define('CONST_Import_Style', CONST_DataDir.'/settings/import-full.style');\n")
f.write("@define('CONST_Use_US_Tiger_Data', true);\n")
f.close() f.close()
def cleanup(self): def cleanup(self):

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-cmd.php'); require_once(CONST_LibDir.'/init-cmd.php');
$term_colors = array( $term_colors = array(
'green' => "\033[92m", 'green' => "\033[92m",

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-cmd.php'); require_once(CONST_LibDir.'/init-cmd.php');
ini_set('memory_limit', '800M'); ini_set('memory_limit', '800M');
ini_set('display_errors', 'stderr'); ini_set('display_errors', 'stderr');

View File

@@ -3,8 +3,8 @@
// from a running nominatim instance as CSV data // from a running nominatim instance as CSV data
require_once(CONST_BasePath.'/lib/init-cmd.php'); require_once(CONST_LibDir.'/init-cmd.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php'); require_once(CONST_LibDir.'/ParameterParser.php');
ini_set('memory_limit', '800M'); ini_set('memory_limit', '800M');
$aCMDOptions = array( $aCMDOptions = array(

View File

@@ -1,8 +1,8 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-cmd.php'); require_once(CONST_LibDir.'/init-cmd.php');
require_once(CONST_BasePath.'/lib/Geocode.php'); require_once(CONST_LibDir.'/Geocode.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php'); require_once(CONST_LibDir.'/ParameterParser.php');
ini_set('memory_limit', '800M'); ini_set('memory_limit', '800M');
$aCMDOptions $aCMDOptions

View File

@@ -1,8 +1,8 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-cmd.php'); require_once(CONST_LibDir.'/init-cmd.php');
require_once(CONST_BasePath.'/lib/setup/SetupClass.php'); require_once(CONST_LibDir.'/setup/SetupClass.php');
require_once(CONST_BasePath.'/lib/setup_functions.php'); require_once(CONST_LibDir.'/setup_functions.php');
ini_set('memory_limit', '800M'); ini_set('memory_limit', '800M');
use Nominatim\Setup\SetupFunctions as SetupFunctions; use Nominatim\Setup\SetupFunctions as SetupFunctions;

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-cmd.php'); require_once(CONST_LibDir.'/init-cmd.php');
ini_set('memory_limit', '800M'); ini_set('memory_limit', '800M');
ini_set('display_errors', 'stderr'); ini_set('display_errors', 'stderr');

View File

@@ -1,9 +1,9 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-cmd.php'); require_once(CONST_LibDir.'/init-cmd.php');
require_once(CONST_BasePath.'/lib/setup_functions.php'); require_once(CONST_LibDir.'/setup_functions.php');
require_once(CONST_BasePath.'/lib/setup/SetupClass.php'); require_once(CONST_LibDir.'/setup/SetupClass.php');
require_once(CONST_BasePath.'/lib/setup/AddressLevelParser.php'); require_once(CONST_LibDir.'/setup/AddressLevelParser.php');
ini_set('memory_limit', '800M'); ini_set('memory_limit', '800M');
@@ -99,7 +99,7 @@ if ($fPostgresVersion >= 11.0) {
} }
$oIndexCmd = (new \Nominatim\Shell(CONST_BasePath.'/nominatim/nominatim.py')) $oIndexCmd = (new \Nominatim\Shell(CONST_DataDir.'/nominatim/nominatim.py'))
->addParams('--database', $aDSNInfo['database']) ->addParams('--database', $aDSNInfo['database'])
->addParams('--port', $aDSNInfo['port']) ->addParams('--port', $aDSNInfo['port'])
->addParams('--threads', $aResult['index-instances']); ->addParams('--threads', $aResult['index-instances']);
@@ -193,7 +193,7 @@ if ($aResult['check-for-updates']) {
fail('Updates not set up. Please run ./utils/update.php --init-updates.'); fail('Updates not set up. Please run ./utils/update.php --init-updates.');
} }
$oCmd = (new \Nominatim\Shell(CONST_BasePath.'/utils/check_server_for_updates.py')) $oCmd = (new \Nominatim\Shell(CONST_BinDir.'/check_server_for_updates.py'))
->addParams(CONST_Replication_Url) ->addParams(CONST_Replication_Url)
->addParams($aLastState['sequence_id']); ->addParams($aLastState['sequence_id']);
$iRet = $oCmd->run(); $iRet = $oCmd->run();
@@ -223,11 +223,11 @@ if (isset($aResult['import-diff']) || isset($aResult['import-file'])) {
if ($aResult['calculate-postcodes']) { if ($aResult['calculate-postcodes']) {
info('Update postcodes centroids'); info('Update postcodes centroids');
$sTemplate = file_get_contents(CONST_BasePath.'/sql/update-postcodes.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/update-postcodes.sql');
runSQLScript($sTemplate, true, true); runSQLScript($sTemplate, true, true);
} }
$sTemporaryFile = CONST_BasePath.'/data/osmosischange.osc'; $sTemporaryFile = CONST_InstallDir.'/osmosischange.osc';
$bHaveDiff = false; $bHaveDiff = false;
$bUseOSMApi = isset($aResult['import-from-main-api']) && $aResult['import-from-main-api']; $bUseOSMApi = isset($aResult['import-from-main-api']) && $aResult['import-from-main-api'];
$sContentURL = ''; $sContentURL = '';
@@ -274,7 +274,7 @@ if ($bHaveDiff) {
if ($aResult['recompute-word-counts']) { if ($aResult['recompute-word-counts']) {
info('Recompute frequency of full-word search terms'); info('Recompute frequency of full-word search terms');
$sTemplate = file_get_contents(CONST_BasePath.'/sql/words_from_search_name.sql'); $sTemplate = file_get_contents(CONST_DataDir.'/sql/words_from_search_name.sql');
runSQLScript($sTemplate, true, true); runSQLScript($sTemplate, true, true);
} }
@@ -320,7 +320,7 @@ if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
"Please check install documentation (https://nominatim.org/release-docs/latest/admin/Import-and-Update#setting-up-the-update-process)\n"); "Please check install documentation (https://nominatim.org/release-docs/latest/admin/Import-and-Update#setting-up-the-update-process)\n");
} }
$sImportFile = CONST_InstallPath.'/osmosischange.osc'; $sImportFile = CONST_InstallDir.'/osmosischange.osc';
$oCMDDownload = (new \Nominatim\Shell(CONST_Pyosmium_Binary)) $oCMDDownload = (new \Nominatim\Shell(CONST_Pyosmium_Binary))
->addParams('--server', CONST_Replication_Url) ->addParams('--server', CONST_Replication_Url)
@@ -379,7 +379,7 @@ if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
// get the newest object from the diff file // get the newest object from the diff file
$sBatchEnd = 0; $sBatchEnd = 0;
$iRet = 0; $iRet = 0;
$oCMD = new \Nominatim\Shell(CONST_BasePath.'/utils/osm_file_date.py', $sImportFile); $oCMD = new \Nominatim\Shell(CONST_BinDir.'/osm_file_date.py', $sImportFile);
exec($oCMD->escapedCmd(), $sBatchEnd, $iRet); exec($oCMD->escapedCmd(), $sBatchEnd, $iRet);
if ($iRet == 5) { if ($iRet == 5) {
echo "Diff file is empty. skipping import.\n"; echo "Diff file is empty. skipping import.\n";

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-cmd.php'); require_once(CONST_LibDir.'/init-cmd.php');
ini_set('memory_limit', '800M'); ini_set('memory_limit', '800M');
$aCMDOptions = array( $aCMDOptions = array(
@@ -13,10 +13,10 @@ $aCMDOptions = array(
); );
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true); getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_LibDir.'/log.php');
require_once(CONST_BasePath.'/lib/Geocode.php'); require_once(CONST_LibDir.'/Geocode.php');
require_once(CONST_BasePath.'/lib/PlaceLookup.php'); require_once(CONST_LibDir.'/PlaceLookup.php');
require_once(CONST_BasePath.'/lib/ReverseGeocode.php'); require_once(CONST_LibDir.'/ReverseGeocode.php');
$oDB = new Nominatim\DB(); $oDB = new Nominatim\DB();
$oDB->connect(); $oDB->connect();

View File

@@ -1,8 +1,8 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_LibDir.'/init-website.php');
require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_LibDir.'/log.php');
require_once(CONST_BasePath.'/lib/output.php'); require_once(CONST_LibDir.'/output.php');
ini_set('memory_limit', '200M'); ini_set('memory_limit', '200M');
$oParams = new Nominatim\ParameterParser(); $oParams = new Nominatim\ParameterParser();

View File

@@ -1,9 +1,9 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_LibDir.'/init-website.php');
require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_LibDir.'/log.php');
require_once(CONST_BasePath.'/lib/output.php'); require_once(CONST_LibDir.'/output.php');
require_once(CONST_BasePath.'/lib/AddressDetails.php'); require_once(CONST_LibDir.'/AddressDetails.php');
ini_set('memory_limit', '200M'); ini_set('memory_limit', '200M');
$oParams = new Nominatim\ParameterParser(); $oParams = new Nominatim\ParameterParser();
@@ -77,7 +77,7 @@ if ($sOsmType && $iOsmId > 0) {
$aPointDetails['error_x'] = 0; $aPointDetails['error_x'] = 0;
$aPointDetails['error_y'] = 0; $aPointDetails['error_y'] = 0;
} }
include(CONST_BasePath.'/lib/template/details-error-'.$sOutputFormat.'.php'); include(CONST_LibDir.'/template/details-error-'.$sOutputFormat.'.php');
exit; exit;
} }
} }
@@ -247,4 +247,4 @@ if ($bIncludeKeywords) {
logEnd($oDB, $hLog, 1); logEnd($oDB, $hLog, 1);
include(CONST_BasePath.'/lib/template/details-'.$sOutputFormat.'.php'); include(CONST_LibDir.'/template/details-'.$sOutputFormat.'.php');

View File

@@ -1,9 +1,9 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_LibDir.'/init-website.php');
require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_LibDir.'/log.php');
require_once(CONST_BasePath.'/lib/PlaceLookup.php'); require_once(CONST_LibDir.'/PlaceLookup.php');
require_once(CONST_BasePath.'/lib/output.php'); require_once(CONST_LibDir.'/output.php');
ini_set('memory_limit', '200M'); ini_set('memory_limit', '200M');
$oParams = new Nominatim\ParameterParser(); $oParams = new Nominatim\ParameterParser();
@@ -84,4 +84,4 @@ $sMoreURL = '';
logEnd($oDB, $hLog, 1); logEnd($oDB, $hLog, 1);
$sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat; $sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat;
include(CONST_BasePath.'/lib/template/search-'.$sOutputTemplate.'.php'); include(CONST_LibDir.'/template/search-'.$sOutputTemplate.'.php');

View File

@@ -1,8 +1,8 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_LibDir.'/init-website.php');
require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_LibDir.'/log.php');
require_once(CONST_BasePath.'/lib/output.php'); require_once(CONST_LibDir.'/output.php');
ini_set('memory_limit', '200M'); ini_set('memory_limit', '200M');
$oParams = new Nominatim\ParameterParser(); $oParams = new Nominatim\ParameterParser();

View File

@@ -1,10 +1,10 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_LibDir.'/init-website.php');
require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_LibDir.'/log.php');
require_once(CONST_BasePath.'/lib/PlaceLookup.php'); require_once(CONST_LibDir.'/PlaceLookup.php');
require_once(CONST_BasePath.'/lib/ReverseGeocode.php'); require_once(CONST_LibDir.'/ReverseGeocode.php');
require_once(CONST_BasePath.'/lib/output.php'); require_once(CONST_LibDir.'/output.php');
ini_set('memory_limit', '200M'); ini_set('memory_limit', '200M');
$oParams = new Nominatim\ParameterParser(); $oParams = new Nominatim\ParameterParser();
@@ -84,4 +84,4 @@ if ($sOutputFormat == 'geocodejson') {
} }
$sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat; $sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat;
include(CONST_BasePath.'/lib/template/address-'.$sOutputTemplate.'.php'); include(CONST_LibDir.'/template/address-'.$sOutputTemplate.'.php');

View File

@@ -1,9 +1,9 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_LibDir.'/init-website.php');
require_once(CONST_BasePath.'/lib/log.php'); require_once(CONST_LibDir.'/log.php');
require_once(CONST_BasePath.'/lib/Geocode.php'); require_once(CONST_LibDir.'/Geocode.php');
require_once(CONST_BasePath.'/lib/output.php'); require_once(CONST_LibDir.'/output.php');
ini_set('memory_limit', '200M'); ini_set('memory_limit', '200M');
$oDB = new Nominatim\DB(); $oDB = new Nominatim\DB();
@@ -41,7 +41,7 @@ if (CONST_Search_BatchMode && isset($_GET['batch'])) {
$aSearchResults = $oBatchGeocode->lookup(); $aSearchResults = $oBatchGeocode->lookup();
$aBatchResults[] = $aSearchResults; $aBatchResults[] = $aSearchResults;
} }
include(CONST_BasePath.'/lib/template/search-batch-json.php'); include(CONST_LibDir.'/template/search-batch-json.php');
exit; exit;
} }
@@ -89,4 +89,4 @@ if (isset($_SERVER['REQUEST_SCHEME'])
if (CONST_Debug) exit; if (CONST_Debug) exit;
$sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat; $sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat;
include(CONST_BasePath.'/lib/template/search-'.$sOutputTemplate.'.php'); include(CONST_LibDir.'/template/search-'.$sOutputTemplate.'.php');

View File

@@ -1,8 +1,8 @@
<?php <?php
require_once(CONST_BasePath.'/lib/init-website.php'); require_once(CONST_LibDir.'/init-website.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php'); require_once(CONST_LibDir.'/ParameterParser.php');
require_once(CONST_BasePath.'/lib/Status.php'); require_once(CONST_LibDir.'/Status.php');
$oParams = new Nominatim\ParameterParser(); $oParams = new Nominatim\ParameterParser();
$sOutputFormat = $oParams->getSet('format', array('text', 'json'), 'text'); $sOutputFormat = $oParams->getSet('format', array('text', 'json'), 'text');