[cli] Fix exporting of plugin interfaces
Signed-off-by: Ferdinand Thiessen <rpm@fthiessen.de>
This commit is contained in:
		
							parent
							
								
									fa503fe142
								
							
						
					
					
						commit
						dc2b949225
					
				|  | @ -1,4 +1,5 @@ | |||
| import click | ||||
| from importlib_metadata import entry_points | ||||
| 
 | ||||
| 
 | ||||
| @click.command() | ||||
|  | @ -8,14 +9,21 @@ import click | |||
| @click.option("--no-core", help="Skip models / types from flaschengeist core", is_flag=True) | ||||
| def export(namespace, output, no_core, plugin): | ||||
|     from flaschengeist import logger, models | ||||
|     from flaschengeist.app import get_plugins | ||||
|     from .InterfaceGenerator import InterfaceGenerator | ||||
| 
 | ||||
|     gen = InterfaceGenerator(namespace, output, logger) | ||||
|     if not no_core: | ||||
|         gen.run(models) | ||||
|     if plugin: | ||||
|         for plugin_class in get_plugins(): | ||||
|             if (len(plugin) == 0 or plugin_class.id in plugin) and plugin_class.models is not None: | ||||
|                 gen.run(plugin_class.models) | ||||
|         for entry_point in entry_points(group="flaschengeist.plugins"): | ||||
|             if len(plugin) == 0 or entry_point.name in plugin: | ||||
|                 try: | ||||
|                     plugin = entry_point.load() | ||||
|                     gen.run(plugin.models) | ||||
|                 except: | ||||
|                     logger.error( | ||||
|                         f"Plugin {entry_point.name} could not be loaded due to an error.", | ||||
|                         exc_info=True, | ||||
|                     ) | ||||
|                     continue | ||||
|     gen.write() | ||||
|  |  | |||
|  | @ -97,7 +97,9 @@ def ls(enabled, no_header): | |||
|         return p.version | ||||
| 
 | ||||
|     plugins = entry_points(group="flaschengeist.plugins") | ||||
|     enabled_plugins = [key for key, value in config.items() if "enabled" in value and value["enabled"]] + [config["FLASCHENGEIST"]["auth"]] | ||||
|     enabled_plugins = [key for key, value in config.items() if "enabled" in value and value["enabled"]] + [ | ||||
|         config["FLASCHENGEIST"]["auth"] | ||||
|     ] | ||||
|     loaded_plugins = current_app.config["FG_PLUGINS"].keys() | ||||
| 
 | ||||
|     if not no_header: | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue