Implemented main basically
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -3,7 +3,11 @@ from plugins import AbstractPlugin, AbstractCommandCompiler
|
||||
import logging
|
||||
|
||||
|
||||
class ConflictingPlugins(BaseException):
|
||||
class ConflictingPlugins(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class UnknownPlugin(Exception):
|
||||
pass
|
||||
|
||||
|
||||
@@ -19,14 +23,25 @@ class PluginRepository:
|
||||
self._registered_plugins[plugin_class.plugin_name] = plugin_class
|
||||
self._logger.debug(f"Registered plugin: {plugin_class.plugin_name}")
|
||||
|
||||
def load_plugins(self, plugins: List[str]):
|
||||
for plugin in plugins:
|
||||
self.load_plugin(plugin)
|
||||
|
||||
def load_plugin(self, plugin: str):
|
||||
self._logger.debug(f"Loading plugin: {plugin}")
|
||||
|
||||
if plugin in self._loaded_plugins.keys():
|
||||
self._logger.warning(f"Plugin {plugin} already loaded!")
|
||||
return
|
||||
|
||||
# create instance
|
||||
plugin_instance = self._registered_plugins[plugin]() # config is statically loaded
|
||||
# lookup plugin class
|
||||
try:
|
||||
plugin_cls = self._registered_plugins[plugin]
|
||||
except KeyError:
|
||||
raise UnknownPlugin(f"Tried to load unknown plugin: {plugin}")
|
||||
|
||||
# Create instance
|
||||
plugin_instance = plugin_cls() # config is statically loaded
|
||||
|
||||
# load compilers
|
||||
compilers = plugin_instance.load_compilers()
|
||||
|
||||
Reference in New Issue
Block a user