
``` $ swh lister run Traceback (most recent call last): File "/home/dev/.local/bin/swh", line 33, in <module> sys.exit(load_entry_point('swh.core', 'console_scripts', 'swh')()) File "/home/dev/swh-environment/swh-core/swh/core/cli/__init__.py", line 144, in main return swh(auto_envvar_prefix="SWH") File "/home/dev/.local/lib/python3.9/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/home/dev/.local/lib/python3.9/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/dev/.local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/dev/.local/lib/python3.9/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/dev/.local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/dev/.local/lib/python3.9/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/home/dev/.local/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func return f(get_current_context(), *args, **kwargs) File "/home/dev/swh-environment/swh-lister/swh/lister/cli.py", line 68, in run get_lister(lister, **config).run() File "/home/dev/swh-environment/swh-lister/swh/lister/__init__.py", line 75, in get_lister raise ValueError( ValueError: Invalid lister None: only supported listers are ['arch', 'aur', 'bitbucket', 'bower', 'cgit', 'conda', 'cpan', 'cran', 'crates', 'debian', 'fedora', 'gitea', 'github', 'gitlab', 'gnu', 'gogs', 'golang', 'hackage', 'hex', 'launchpad', 'maven', 'nixguix', 'npm', 'nuget', 'opam', 'packagist', 'phabricator', 'pubdev', 'puppet', 'pypi', 'rubygems', 'sourceforge', 'tuleap'] ```
76 lines
1.8 KiB
Python
76 lines
1.8 KiB
Python
# Copyright (C) 2018-2021 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 copy import deepcopy
|
|
import logging
|
|
|
|
# WARNING: do not import unnecessary things here to keep cli startup time under
|
|
# control
|
|
import os
|
|
|
|
import click
|
|
|
|
from swh.core.cli import CONTEXT_SETTINGS
|
|
from swh.core.cli import swh as swh_cli_group
|
|
from swh.lister import SUPPORTED_LISTERS, get_lister
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@swh_cli_group.group(name="lister", context_settings=CONTEXT_SETTINGS)
|
|
@click.option(
|
|
"--config-file",
|
|
"-C",
|
|
default=None,
|
|
type=click.Path(
|
|
exists=True,
|
|
dir_okay=False,
|
|
),
|
|
help="Configuration file.",
|
|
)
|
|
@click.pass_context
|
|
def lister(ctx, config_file):
|
|
"""Software Heritage Lister tools."""
|
|
from swh.core import config
|
|
|
|
ctx.ensure_object(dict)
|
|
|
|
if not config_file:
|
|
config_file = os.environ.get("SWH_CONFIG_FILENAME")
|
|
conf = config.read(config_file)
|
|
|
|
ctx.obj["config"] = conf
|
|
|
|
|
|
@lister.command(
|
|
name="run",
|
|
context_settings=CONTEXT_SETTINGS,
|
|
help="Trigger a full listing run for a particular forge "
|
|
"instance. The output of this listing results in "
|
|
'"oneshot" tasks in the scheduler db with a priority '
|
|
"defined by the user",
|
|
)
|
|
@click.option(
|
|
"--lister",
|
|
"-l",
|
|
help="Lister to run",
|
|
type=click.Choice(SUPPORTED_LISTERS),
|
|
required=True,
|
|
)
|
|
@click.argument("options", nargs=-1)
|
|
@click.pass_context
|
|
def run(ctx, lister, options):
|
|
from swh.scheduler.cli.utils import parse_options
|
|
|
|
config = deepcopy(ctx.obj["config"])
|
|
|
|
if options:
|
|
config.update(parse_options(options)[1])
|
|
|
|
get_lister(lister, **config).run()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
lister()
|