diff --git a/setup.py b/setup.py old mode 100755 new mode 100644 --- a/setup.py +++ b/setup.py @@ -53,6 +53,8 @@ entry_points=''' [console_scripts] swh-vault=swh.vault.cli:main + [swh.cli.subcommands] + vault=swh.vault.cli:cli ''', classifiers=[ "Programming Language :: Python :: 3", diff --git a/swh/vault/cli.py b/swh/vault/cli.py --- a/swh/vault/cli.py +++ b/swh/vault/cli.py @@ -1,4 +1,5 @@ import logging + import click import aiohttp @@ -8,28 +9,27 @@ CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help']) -@click.command(context_settings=CONTEXT_SETTINGS) +@click.command(name='vault', context_settings=CONTEXT_SETTINGS) @click.option('--config-file', '-C', default=None, type=click.Path(exists=True, dir_okay=False,), help="Configuration file.") -@click.option('--log-level', '-l', default='INFO', - type=click.Choice(logging._nameToLevel.keys()), - help="Log level (default to INFO)") @click.option('--no-stdout', is_flag=True, default=False, help="Do NOT output logs on the console") @click.option('--host', default='0.0.0.0', help="Host to run the server") @click.option('--port', default=5005, type=click.INT, help="Binding port of the server") -@click.option('--debug/--nodebug', default=True, +@click.option('--debug/--no-debug', default=True, help="Indicates if the server should run in debug mode") @click.pass_context -def cli(ctx, config_file, log_level, no_stdout, host, port, debug): +def cli(ctx, config_file, no_stdout, host, port, debug): """Software Heritage Vault API server """ from swh.scheduler.celery_backend.config import setup_log_handler - log_level = setup_log_handler( - loglevel=log_level, colorize=False, + + ctx.ensure_object(dict) + setup_log_handler( + loglevel=ctx.obj.get('log_level', logging.INFO), colorize=False, format='[%(levelname)s] %(name)s -- %(message)s', log_console=not no_stdout) @@ -43,6 +43,7 @@ def main(): + logging.basicConfig() return cli(auto_envvar_prefix='SWH_VAULT')