in osci-cli.py [0:0]
def get_actions_commands():
"""Find all available cli actions"""
command_group = click.Group()
for action in Action.__subclasses__():
options = [
click.Option([f'--{param.name}', f'-{param.short_name}'] if param.short_name else [f'--{param.name}'],
type=param.type if param.type != datetime else str,
required=param.required,
help=f"{param.description} "
f"{param.datetime_format if param.datetime_format else param.choices if param.choices else ''}",
default=param.default)
for param in action.params
]
try:
command = click.Command(name=action.name(), params=options, callback=action().execute,
short_help=action.__doc__, help=action.help_text())
command_group.add_command(command)
except NotImplementedError as ex:
log.warning(f'Action `{action}` skipped; ex: {ex}')
continue
return command_group