diff --git a/ennstatus/cli/__init__.py b/ennstatus/cli/__init__.py --- a/ennstatus/cli/__init__.py +++ b/ennstatus/cli/__init__.py @@ -1,7 +1,11 @@ import pathlib +import importlib +import operator import click +from .commands import __all__ as commands_all + @click.group() @click.option('-p', '--path', default='/srv/http/enn.lu', @@ -19,9 +23,10 @@ def cli(ctx, path): ctx.obj['config_file'] = path / 'config.json' ctx.obj['data_dir'] = path / 'data' - -from .commands import config -cli.add_command(config, 'config') +subcommands = importlib.import_module('ennstatus.cli.commands') +for command in commands_all: + get = operator.attrgetter(command) + cli.add_command(get(subcommands), command) if __name__ == '__main__': cli()