From: Michael Tremer Date: Sun, 6 Feb 2011 21:31:13 +0000 (+0100) Subject: plugins: Add possibiblity to register and run a plugin. X-Git-Tag: 0.9.3~202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3b41e5f899c5aa8eb49659ca6fc83c3996e86c1;p=pakfire.git plugins: Add possibiblity to register and run a plugin. --- diff --git a/pakfire/plugins/__init__.py b/pakfire/plugins/__init__.py index 6bbe0c341..ab17879ef 100644 --- a/pakfire/plugins/__init__.py +++ b/pakfire/plugins/__init__.py @@ -10,9 +10,21 @@ class Plugins(object): self.__plugins = [] - def run(self, method): + def register_plugin(self, plugin): + # Create instance of plugin + plugin = plugin(self.pakfire) + + self.__plugins.append(plugin) + + def run(self, method, *args, **kwargs): if not method in self.allowed_methods: raise Exception, "Unallowed method called '%s'" % method logging.debug("Running plugin method '%s'" % method) + for plugin in self.__plugins: + func = getattr(plugin, method, None) + if not func: + continue + + func(*args, **kwargs)