diff --git a/swh/core/cli/__init__.py b/swh/core/cli/__init__.py --- a/swh/core/cli/__init__.py +++ b/swh/core/cli/__init__.py @@ -99,6 +99,27 @@ logger.warning('Could not load subcommand %s: %s', entry_point.name, str(e)) + loader_subcommands = list(pkg_resources.iter_entry_points( + 'swh.cli.loader.subcommands')) + if len(loader_subcommands) > 0: + @swh.group() + @click.pass_context + def loader(ctx): + """Loader subcommand""" + return ctx + + for entry_point in pkg_resources.iter_entry_points( + 'swh.cli.loader.subcommands'): + logger.debug(f'swh.cli.subcmd: entry point {entry_point}') + try: + logger.debug(f'entrypoint.name: {entry_point.name}') + cmd = entry_point.load() + logger.debug(f'cmd: {cmd}') + loader.add_command(cmd, name=entry_point.name) + except Exception as e: + logger.warning( + f'Could not load subcommand {entry_point.name}: {e}') + return swh(auto_envvar_prefix='SWH')