# HG changeset patch # User Dennis Fink # Date 2015-10-24 01:25:08 # Node ID acea8f3f6a6fbd9d8a2c516ce816c823009d72d9 # Parent 1bca030715c42f2409350e4a006919f6577cd56b Dynamically add subcommands 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()