Changeset View
Changeset View
Standalone View
Standalone View
swh/lister/cli.py
# Copyright (C) 2018 The Software Heritage developers | # Copyright (C) 2018 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import click | import click | ||||
SUPPORTED_LISTERS = ['github', 'gitlab', 'bitbucket', 'debian', 'pypi'] | SUPPORTED_LISTERS = ['github', 'gitlab', 'bitbucket', 'debian', 'pypi', 'npm'] | ||||
@click.command() | @click.command() | ||||
@click.option( | @click.option( | ||||
'--db-url', '-d', default='postgres:///lister-gitlab.com', | '--db-url', '-d', default='postgres:///lister-gitlab.com', | ||||
help='SQLAlchemy DB URL; see ' | help='SQLAlchemy DB URL; see ' | ||||
'<http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls>') # noqa | '<http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls>') # noqa | ||||
@click.option('--lister', required=1, | @click.option('--lister', required=1, | ||||
▲ Show 20 Lines • Show All 53 Lines • ▼ Show 20 Lines | elif lister == 'debian': | ||||
lister.db_session.add_all(areas) | lister.db_session.add_all(areas) | ||||
lister.db_session.commit() | lister.db_session.commit() | ||||
elif lister == 'pypi': | elif lister == 'pypi': | ||||
from .pypi.models import ModelBase | from .pypi.models import ModelBase | ||||
from .pypi.lister import PyPILister | from .pypi.lister import PyPILister | ||||
_lister = PyPILister(override_config=override_conf) | _lister = PyPILister(override_config=override_conf) | ||||
elif lister == 'npm': | |||||
from .npm.models import IndexingModelBase as ModelBase | |||||
from .npm.lister import NpmLister | |||||
_lister = NpmLister(override_config=override_conf) | |||||
else: | else: | ||||
raise ValueError('Only supported listers are %s' % SUPPORTED_LISTERS) | raise ValueError('Only supported listers are %s' % SUPPORTED_LISTERS) | ||||
if drop_tables: | if drop_tables: | ||||
ModelBase.metadata.drop_all(_lister.db_engine) | ModelBase.metadata.drop_all(_lister.db_engine) | ||||
if create_tables: | if create_tables: | ||||
ModelBase.metadata.create_all(_lister.db_engine) | ModelBase.metadata.create_all(_lister.db_engine) | ||||
if with_data and insert_minimum_data: | if with_data and insert_minimum_data: | ||||
insert_minimum_data(_lister) | insert_minimum_data(_lister) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
cli() | cli() |