]> git.openstreetmap.org Git - nominatim.git/blobdiff - utils/setup.php
remove tests for HTML output
[nominatim.git] / utils / setup.php
old mode 100755 (executable)
new mode 100644 (file)
index af9c938..7f476d5
@@ -1,13 +1,13 @@
-#!@PHP_BIN@ -Cq
 <?php
 
 <?php
 
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
 require_once(CONST_BasePath.'/lib/init-cmd.php');
 require_once(CONST_BasePath.'/lib/init-cmd.php');
-include_once(CONST_InstallPath.'/utils/setup_functions.php');
+require_once(CONST_BasePath.'/lib/setup/SetupClass.php');
+require_once(CONST_BasePath.'/lib/setup_functions.php');
 ini_set('memory_limit', '800M');
 
 ini_set('memory_limit', '800M');
 
-# (long-opt, short-opt, min-occurs, max-occurs, num-arguments, num-arguments, type, help)
+use Nominatim\Setup\SetupFunctions as SetupFunctions;
 
 
+// (long-opt, short-opt, min-occurs, max-occurs, num-arguments, num-arguments, type, help)
 $aCMDOptions
 = array(
    'Create and setup nominatim search system',
 $aCMDOptions
 = array(
    'Create and setup nominatim search system',
@@ -24,6 +24,7 @@ $aCMDOptions
    array('setup-db', '', 0, 1, 0, 0, 'bool', 'Build a blank nominatim db'),
    array('import-data', '', 0, 1, 0, 0, 'bool', 'Import a osm file'),
    array('osm2pgsql-cache', '', 0, 1, 1, 1, 'int', 'Cache size used by osm2pgsql'),
    array('setup-db', '', 0, 1, 0, 0, 'bool', 'Build a blank nominatim db'),
    array('import-data', '', 0, 1, 0, 0, 'bool', 'Import a osm file'),
    array('osm2pgsql-cache', '', 0, 1, 1, 1, 'int', 'Cache size used by osm2pgsql'),
+   array('reverse-only', '', 0, 1, 0, 0, 'bool', 'Do not create search tables and indexes'),
    array('create-functions', '', 0, 1, 0, 0, 'bool', 'Create functions'),
    array('enable-diff-updates', '', 0, 1, 0, 0, 'bool', 'Turn on the code required to make diff updates work'),
    array('enable-debug-statements', '', 0, 1, 0, 0, 'bool', 'Include debug warning statements in pgsql commands'),
    array('create-functions', '', 0, 1, 0, 0, 'bool', 'Create functions'),
    array('enable-diff-updates', '', 0, 1, 0, 0, 'bool', 'Turn on the code required to make diff updates work'),
    array('enable-debug-statements', '', 0, 1, 0, 0, 'bool', 'Include debug warning statements in pgsql commands'),
@@ -37,97 +38,122 @@ $aCMDOptions
    array('disable-token-precalc', '', 0, 1, 0, 0, 'bool', 'Disable name precalculation (EXPERT)'),
    array('import-tiger-data', '', 0, 1, 0, 0, 'bool', 'Import tiger data (not included in \'all\')'),
    array('calculate-postcodes', '', 0, 1, 0, 0, 'bool', 'Calculate postcode centroids'),
    array('disable-token-precalc', '', 0, 1, 0, 0, 'bool', 'Disable name precalculation (EXPERT)'),
    array('import-tiger-data', '', 0, 1, 0, 0, 'bool', 'Import tiger data (not included in \'all\')'),
    array('calculate-postcodes', '', 0, 1, 0, 0, 'bool', 'Calculate postcode centroids'),
-   array('osmosis-init', '', 0, 1, 0, 0, 'bool', 'Generate default osmosis configuration'),
    array('index', '', 0, 1, 0, 0, 'bool', 'Index the data'),
    array('index-noanalyse', '', 0, 1, 0, 0, 'bool', 'Do not perform analyse operations during index (EXPERT)'),
    array('create-search-indices', '', 0, 1, 0, 0, 'bool', 'Create additional indices required for search and update'),
    array('create-country-names', '', 0, 1, 0, 0, 'bool', 'Create default list of searchable country names'),
    array('drop', '', 0, 1, 0, 0, 'bool', 'Drop tables needed for updates, making the database readonly (EXPERIMENTAL)'),
    array('index', '', 0, 1, 0, 0, 'bool', 'Index the data'),
    array('index-noanalyse', '', 0, 1, 0, 0, 'bool', 'Do not perform analyse operations during index (EXPERT)'),
    array('create-search-indices', '', 0, 1, 0, 0, 'bool', 'Create additional indices required for search and update'),
    array('create-country-names', '', 0, 1, 0, 0, 'bool', 'Create default list of searchable country names'),
    array('drop', '', 0, 1, 0, 0, 'bool', 'Drop tables needed for updates, making the database readonly (EXPERIMENTAL)'),
+   array('setup-website', '', 0, 1, 0, 0, 'bool', 'Used to compile environment variables for the website'),
   );
   );
+
+// $aCMDOptions passed to getCmdOpt by reference
 getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
 
 $bDidSomething = false;
 
 getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
 
 $bDidSomething = false;
 
-// Check if osm-file is set and points to a valid file if --all or --import-data is given
-checkInFile($aCMDResult);
+//*******************************************************
+// Making some sanity check:
+// Check if osm-file is set and points to a valid file
+if ($aCMDResult['import-data'] || $aCMDResult['all']) {
+    // to remain in /lib/setup_functions.php function
+    checkInFile($aCMDResult['osm-file']);
+}
 
 
-// get info how many processors and huch much cache mem we can use
-$prepSreturn = prepSystem($aCMDResult);
-$iCacheMemory = $prepSreturn[0];
-$iInstances = $prepSreturn[1];
+// ******************************************************
+// instantiate Setup class
+$oSetup = new SetupFunctions($aCMDResult);
 
 
-// prepares DB for import or update, returns Data Source Name
-$aDSNInfo = prepDB($aCMDResult);
+// *******************************************************
+// go through complete process if 'all' is selected or start selected functions
+if ($aCMDResult['create-db'] || $aCMDResult['all']) {
+    $bDidSomething = true;
+    $oSetup->createDB();
+}
+
+if ($aCMDResult['setup-db'] || $aCMDResult['all']) {
+    $bDidSomething = true;
+    $oSetup->setupDB();
+}
 
 if ($aCMDResult['import-data'] || $aCMDResult['all']) {
     $bDidSomething = true;
 
 if ($aCMDResult['import-data'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    import_data($aCMDResult, $iCacheMemory, $aDSNInfo);
+    $oSetup->importData($aCMDResult['osm-file']);
 }
 
 if ($aCMDResult['create-functions'] || $aCMDResult['all']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['create-functions'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    create_functions($aCMDResult);
+    $oSetup->createFunctions();
 }
 
 if ($aCMDResult['create-tables'] || $aCMDResult['all']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['create-tables'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    create_tables($aCMDResult);
+    $oSetup->createTables($aCMDResult['reverse-only']);
+    $oSetup->createFunctions();
+    $oSetup->createTableTriggers();
 }
 
 if ($aCMDResult['create-partition-tables'] || $aCMDResult['all']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['create-partition-tables'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    create_partition_tables($aCMDResult);
+    $oSetup->createPartitionTables();
 }
 
 if ($aCMDResult['create-partition-functions'] || $aCMDResult['all']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['create-partition-functions'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    create_partition_functions();
+    $oSetup->createPartitionFunctions();
 }
 
 if ($aCMDResult['import-wikipedia-articles'] || $aCMDResult['all']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['import-wikipedia-articles'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    import_wikipedia_articles();
+    $oSetup->importWikipediaArticles();
 }
 
 }
 
-
 if ($aCMDResult['load-data'] || $aCMDResult['all']) {
     $bDidSomething = true;
 if ($aCMDResult['load-data'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    load_data($aCMDResult, $iInstances);
+    $oSetup->loadData($aCMDResult['disable-token-precalc']);
 }
 
 if ($aCMDResult['import-tiger-data']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['import-tiger-data']) {
     $bDidSomething = true;
-    import_tiger_data($iInstances);
+    $oSetup->importTigerData();
 }
 
 if ($aCMDResult['calculate-postcodes'] || $aCMDResult['all']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['calculate-postcodes'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    calculate_postcodes($aCMDResult);
+    $oSetup->calculatePostcodes($aCMDResult['all']);
 }
 
 }
 
-if ($aCMDResult['osmosis-init']) {
+if ($aCMDResult['index'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $bDidSomething = true;
-    osmosis_init();
+    $oSetup->index($aCMDResult['index-noanalyse']);
 }
 
 }
 
-if ($aCMDResult['index'] || $aCMDResult['all']) {
+if ($aCMDResult['drop']) {
     $bDidSomething = true;
     $bDidSomething = true;
-    index($aCMDResult, $aDSNInfo, $iInstances);
+    $oSetup->drop($aCMDResult);
 }
 
 if ($aCMDResult['create-search-indices'] || $aCMDResult['all']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['create-search-indices'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    create_search_indices($aCMDResult);
+    $oSetup->createSearchIndices();
 }
 
 if ($aCMDResult['create-country-names'] || $aCMDResult['all']) {
     $bDidSomething = true;
 }
 
 if ($aCMDResult['create-country-names'] || $aCMDResult['all']) {
     $bDidSomething = true;
-    create_country_names();
+    $oSetup->createCountryNames($aCMDResult);
 }
 
 }
 
-if ($aCMDResult['drop']) {
+if ($aCMDResult['setup-website'] || $aCMDResult['all']) {
     $bDidSomething = true;
     $bDidSomething = true;
-    drop($aCMDResult);
+    $oSetup->setupWebsite();
 }
 
 }
 
-didsomething($bDidSomething);
+// ******************************************************
+// If we did something, repeat the warnings
+if (!$bDidSomething) {
+    showUsage($aCMDOptions, true);
+} else {
+    echo "Summary of warnings:\n\n";
+    repeatWarnings();
+    echo "\n";
+    info('Setup finished.');
+}