]> jfr.im git - erebus.git/blobdiff - ctlmod.py
add ability to hook extra sockets
[erebus.git] / ctlmod.py
index c273638013bb96f94cddcc139397224c0a069577..3e30892d25fbb7c19e32c014c99cce82dbacd9c1 100644 (file)
--- a/ctlmod.py
+++ b/ctlmod.py
@@ -4,7 +4,7 @@
 
 from __future__ import print_function
 
-import sys, time, importlib
+import sys, time, importlib, traceback
 import modlib
 
 if sys.version_info.major >= 3:
@@ -31,6 +31,8 @@ def load(parent, modname, dependent=False):
                        print("failed: %s)" % (modstatus), end=' ')
                else:
                        print("failed: %s." % (modstatus))
+                       if isinstance(modstatus, modlib.error) and isinstance(modstatus.errormsg, BaseException):
+                               traceback.print_exception(modstatus.errormsg)
        elif modstatus == True:
                if dependent:
                        print("OK)", end=' ')
@@ -85,7 +87,10 @@ def _load(parent, modname, dependent=False):
                        #swallow errors loading - softdeps are preferred, not required
 
 
-               ret = mod.modstart(parent)
+               try:
+                       ret = mod.modstart(parent)
+               except Exception as e:
+                       return modlib.error(e)
                if ret is None:
                        ret = True
                if not ret: