]> git.openstreetmap.org Git - nominatim.git/blob - lib/setup_functions.php
replace database abstraction DB with PDO
[nominatim.git] / lib / setup_functions.php
1 <?php
2
3 function checkInFile($sOSMFile)
4 {
5     if (!isset($sOSMFile)) {
6         fail('missing --osm-file for data import');
7     }
8
9     if (!file_exists($sOSMFile)) {
10         fail('the path supplied to --osm-file does not exist');
11     }
12
13     if (!is_readable($sOSMFile)) {
14         fail('osm-file "' . $aCMDResult['osm-file'] . '" not readable');
15     }
16 }
17
18 function checkModulePresence()
19 {
20     // Try accessing the C module, so we know early if something is wrong
21     // and can simply error out.
22     $sModulePath = CONST_Database_Module_Path;
23     $sSQL = "CREATE FUNCTION nominatim_test_import_func(text) RETURNS text AS '";
24     $sSQL .= $sModulePath . "/nominatim.so', 'transliteration' LANGUAGE c IMMUTABLE STRICT";
25     $sSQL .= ';DROP FUNCTION nominatim_test_import_func(text);';
26
27     $oDB = new \Nominatim\DB();
28     $oDB->connect();
29
30     $bResult = true;
31     try {
32         $oDB->exec($sSQL);
33     } catch (\Nominatim\DatabaseError $e) {
34         echo "\nERROR: Failed to load nominatim module. Reason:\n";
35         echo $oDB->getLastError()[2] . "\n\n";
36         $bResult = false;
37     }
38
39     return $bResult;
40 }