diff --git a/setup.py b/setup.py old mode 100755 new mode 100644 index 2762119..b53d85a --- a/setup.py +++ b/setup.py @@ -1,69 +1,71 @@ #!/usr/bin/env python3 # Copyright (C) 2015-2018 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information from setuptools import setup, find_packages from os import path from io import open here = path.abspath(path.dirname(__file__)) # Get the long description from the README file with open(path.join(here, 'README.md'), encoding='utf-8') as f: long_description = f.read() def parse_requirements(name=None): if name: reqf = 'requirements-%s.txt' % name else: reqf = 'requirements.txt' requirements = [] if not path.exists(reqf): return requirements with open(reqf) as f: for line in f.readlines(): line = line.strip() if not line or line.startswith('#'): continue requirements.append(line) return requirements setup( name='swh.vault', description='Software Heritage vault', long_description=long_description, long_description_content_type='text/markdown', author='Software Heritage developers', author_email='swh-devel@inria.fr', url='https://forge.softwareheritage.org/diffusion/DVAU/', packages=find_packages(), install_requires=parse_requirements() + parse_requirements('swh'), setup_requires=['vcversioner'], extras_require={'testing': parse_requirements('test')}, vcversioner={}, include_package_data=True, zip_safe=False, entry_points=''' [console_scripts] swh-vault=swh.vault.cli:main + [swh.cli.subcommands] + vault=swh.vault.cli:cli ''', classifiers=[ "Programming Language :: Python :: 3", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Development Status :: 5 - Production/Stable", ], project_urls={ 'Bug Reports': 'https://forge.softwareheritage.org/maniphest', 'Funding': 'https://www.softwareheritage.org/donate', 'Source': 'https://forge.softwareheritage.org/source/swh-vault', }, ) diff --git a/swh/vault/cli.py b/swh/vault/cli.py index 867b4ad..9c902bc 100644 --- a/swh/vault/cli.py +++ b/swh/vault/cli.py @@ -1,50 +1,51 @@ import logging + import click import aiohttp from swh.vault.api.server import make_app_from_configfile 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/--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) try: app = make_app_from_configfile(config_file, debug=debug) except EnvironmentError as e: click.echo(e.msg, err=True) ctx.exit(1) aiohttp.web.run_app(app, host=host, port=int(port)) def main(): + logging.basicConfig() return cli(auto_envvar_prefix='SWH_VAULT') if __name__ == '__main__': main()