X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=lib%2Fplugins.py;h=e1ed3c3ed358cc25e676e68c3c54f011d1b47f37;hb=3cbe11a42473af52e7c5e002c36aaaf32646f627;hp=0e7e520a59e1f6fa008297f79f853c1ef3c34e08;hpb=5b88b1660066f39461e8e43ad6883662114d76ec;p=electrum-nvc.git diff --git a/lib/plugins.py b/lib/plugins.py index 0e7e520..e1ed3c3 100644 --- a/lib/plugins.py +++ b/lib/plugins.py @@ -14,17 +14,17 @@ def init_plugins(self): fp, pathname, description = imp.find_module('plugins') plugin_names = [name for a, name, b in pkgutil.iter_modules([pathname])] plugin_names = filter( lambda name: os.path.exists(os.path.join(pathname,name+'.py')), plugin_names) - imp.load_module('electrum_plugins', fp, pathname, description) - plugin_modules = map(lambda name: imp.load_source('electrum_plugins.'+name, os.path.join(pathname,name+'.py')), plugin_names) + imp.load_module('electrum_nvc_plugins', fp, pathname, description) + plugin_modules = map(lambda name: imp.load_source('electrum_nvc_plugins.'+name, os.path.join(pathname,name+'.py')), plugin_names) else: - import electrum_plugins - plugin_names = [name for a, name, b in pkgutil.iter_modules(electrum_plugins.__path__)] - plugin_modules = [ __import__('electrum_plugins.'+name, fromlist=['electrum_plugins']) for name in plugin_names] + import electrum_nvc_plugins + plugin_names = [name for a, name, b in pkgutil.iter_modules(electrum_nvc_plugins.__path__)] + plugin_modules = [ __import__('electrum_nvc_plugins.'+name, fromlist=['electrum_nvc_plugins']) for name in plugin_names] for name, p in zip(plugin_names, plugin_modules): try: plugins.append( p.Plugin(self, name) ) - except: + except Exception: print_msg(_("Error: cannot initialize plugin"),p) traceback.print_exc(file=sys.stdout) @@ -34,6 +34,8 @@ def run_hook(name, *args): global plugins + results = [] + for p in plugins: if not p.is_enabled(): @@ -44,12 +46,17 @@ def run_hook(name, *args): continue try: - f(*args) - except: + r = f(*args) + except Exception: print_error("Plugin error") traceback.print_exc(file=sys.stdout) - - return + + if r: + results.append(r) + + if results: + assert len(results) == 1, results + return results[0]