allow relative paths for flatnode file

This commit is contained in:
Sarah Hoffmann
2021-10-22 17:32:51 +02:00
parent 507fdd4f40
commit 1098ab732f
5 changed files with 50 additions and 2 deletions

View File

@@ -23,7 +23,7 @@ class NominatimArgs:
osm2pgsql_style=self.config.get_import_style_file(),
threads=self.threads or default_threads,
dsn=self.config.get_libpq_dsn(),
flatnode_file=self.config.FLATNODE_FILE,
flatnode_file=str(self.config.get_path('FLATNODE_FILE')),
tablespaces=dict(slim_data=self.config.TABLESPACE_OSM_DATA,
slim_index=self.config.TABLESPACE_OSM_INDEX,
main_data=self.config.TABLESPACE_PLACE_DATA,

View File

@@ -31,6 +31,6 @@ class SetupFreeze:
with connect(args.config.get_libpq_dsn()) as conn:
freeze.drop_update_tables(conn)
freeze.drop_flatnode_file(args.config.FLATNODE_FILE)
freeze.drop_flatnode_file(str(args.config.get_path('FLATNODE_FILE')))
return 0

View File

@@ -93,6 +93,23 @@ class Configuration:
raise UsageError("Configuration error.") from exp
def get_path(self, name):
""" Return the given configuration parameter as a Path.
If a relative path is configured, then the function converts this
into an absolute path with the project directory as root path.
If the configuration is unset, a falsy value is returned.
"""
value = self.__getattr__(name)
if value:
value = Path(value)
if not value.is_absolute():
value = self.project_dir / value
value = value.resolve()
return value
def get_libpq_dsn(self):
""" Get configured database DSN converted into the key/value format
understood by libpq and psycopg.