X-Git-Url: https://git.openstreetmap.org/nominatim.git/blobdiff_plain/b9517c99ae6297c2ab908d7fa324efd2d1b2f43a..3c186f80304b5b66795e9ef3cb9edb8f343c9416:/nominatim/cli.py diff --git a/nominatim/cli.py b/nominatim/cli.py index 784250e8..eb652d64 100644 --- a/nominatim/cli.py +++ b/nominatim/cli.py @@ -12,6 +12,7 @@ from .config import Configuration from .tools.exec_utils import run_legacy_script, run_php_server from .errors import UsageError from . import clicmd +from .clicmd.args import NominatimArgs LOG = logging.getLogger() @@ -62,14 +63,15 @@ class CommandlineParser: """ Parse the command line arguments of the program and execute the appropriate subcommand. """ - args = self.parser.parse_args(args=kwargs.get('cli_args')) + args = NominatimArgs() + self.parser.parse_args(args=kwargs.get('cli_args'), namespace=args) if args.subcommand is None: self.parser.print_help() return 1 for arg in ('module_dir', 'osm2pgsql_path', 'phplib_dir', 'sqllib_dir', - 'data_dir', 'phpcgi_path'): + 'data_dir', 'config_dir', 'phpcgi_path'): setattr(args, arg, Path(kwargs[arg])) args.project_dir = Path(args.project_dir).resolve() @@ -78,7 +80,7 @@ class CommandlineParser: datefmt='%Y-%m-%d %H:%M:%S', level=max(4 - args.verbose, 1) * 10) - args.config = Configuration(args.project_dir, args.data_dir / 'settings') + args.config = Configuration(args.project_dir, args.config_dir) log = logging.getLogger() log.warning('Using project directory: %s', str(args.project_dir)) @@ -169,31 +171,12 @@ class SetupAll: params.append('--ignore-errors') if args.index_noanalyse: params.append('--index-noanalyse') + if args.threads: + params.extend(('--threads', args.threads)) return run_legacy_script(*params, nominatim_env=args) -class SetupFreeze: - """\ - Make database read-only. - - About half of data in the Nominatim database is kept only to be able to - keep the data up-to-date with new changes made in OpenStreetMap. This - command drops all this data and only keeps the part needed for geocoding - itself. - - This command has the same effect as the `--no-updates` option for imports. - """ - - @staticmethod - def add_args(parser): - pass # No options - - @staticmethod - def run(args): - return run_legacy_script('setup.php', '--drop', nominatim_env=args) - - class SetupSpecialPhrases: """\ Maintain special phrases. @@ -352,7 +335,7 @@ def nominatim(**kwargs): parser = CommandlineParser('nominatim', nominatim.__doc__) parser.add_subcommand('import', SetupAll) - parser.add_subcommand('freeze', SetupFreeze) + parser.add_subcommand('freeze', clicmd.SetupFreeze) parser.add_subcommand('replication', clicmd.UpdateReplication) parser.add_subcommand('special-phrases', SetupSpecialPhrases) @@ -375,4 +358,6 @@ def nominatim(**kwargs): else: parser.parser.epilog = 'php-cgi not found. Query commands not available.' + parser.add_subcommand('transition', clicmd.AdminTransition) + return parser.run(**kwargs)