summaryrefslogtreecommitdiffstats
path: root/module/HookManager.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/HookManager.py')
-rw-r--r--module/HookManager.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/module/HookManager.py b/module/HookManager.py
index 7cd903403..41e4c5ef0 100644
--- a/module/HookManager.py
+++ b/module/HookManager.py
@@ -41,6 +41,14 @@ class HookManager():
args[0].lock.release()
return res
return new
+
+ def try_catch(func):
+ def new(*args):
+ try:
+ return func(*args)
+ except Exception, e:
+ args[0].log.error(_("Error executing hooks: %s") % str(e))
+ return new
def createIndex(self):
@@ -50,6 +58,7 @@ class HookManager():
#hookClass = getattr(plugin, plugin.__name__)
if self.core.config.getPlugin(pluginClass.__name__, "load"):
+ #@TODO handle in pluginmanager
plugin = pluginClass(self.core)
plugins.append(plugin)
self.log.info(_("%s loaded, activated %s") % (pluginClass.__name__, plugin.isActivated() ))
@@ -67,6 +76,8 @@ class HookManager():
plugin.periodical()
plugin.lastCall = time()
+
+ @try_catch
def coreReady(self):
for plugin in self.plugins:
if plugin.isActivated():