]> jfr.im git - erebus.git/commitdiff
update module loading system
authorzonidjan <redacted>
Sun, 9 Jul 2017 03:12:09 +0000 (22:12 -0500)
committerzonidjan <redacted>
Sun, 9 Jul 2017 03:12:09 +0000 (22:12 -0500)
ctlmod.py
modlib.py
modules/control.py

index 402fdc884eda6e720cb5ba730b12d7f3d5ca4578..f52a7768483f71b58102130fb9566269a111c785 100644 (file)
--- a/ctlmod.py
+++ b/ctlmod.py
@@ -30,14 +30,12 @@ def load(parent, modname, dependent=False):
 
 def _load(parent, modname, dependent=False):
        if not isloaded(modname):
-               sys.path.insert(0, 'modules')
                try:
-                       mod = __import__(modname)
+                       mod = __import__('modules.'+modname, globals(), locals(), ['*'], -1)
+                       # ^ fromlist doesn't actually do anything(?) but it means we don't have to worry about this returning the top-level "modules" object
                        reload(mod) #in case it's been previously loaded.
-               except BaseException as e: #we don't want even sys.exit() to crash us (in case of malicious module) so use BaseException
+               except Exception as e:
                        return modlib.error(e)
-               finally:
-                       del sys.path[0] #remove ./modules from path, in case there's a name conflict
 
 
                if not hasattr(mod, 'modinfo'):
@@ -103,5 +101,3 @@ def unloadall(parent, modlist):
        for m in modlist: unload(parent, m)
 def reloadall(parent, modlist):
        for m in modlist: reloadmod(parent, m)
-
-sys.path.append('modules')
index 199c67f3109810b6b1d616ee585fb63479d4af35..60634eba827fbe14f176f7da1aa912aaefb6463f 100644 (file)
--- a/modlib.py
+++ b/modlib.py
@@ -39,7 +39,7 @@ class modlib(object):
                self.helps = []
                self.parent = None
 
-               self.name = name
+               self.name = (name.split(".", 1))[1]
 
        def modstart(self, parent):
                self.parent = parent
index 0584353afc38b9c82b247569f202d0b8ab521567..3392258e0c696b2ce8d5428309fdf063c145f140 100644 (file)
@@ -68,7 +68,7 @@ def modreload(bot, user, chan, realtarget, *args):
 def modlist(bot, user, chan, realtarget, *args):
        mods = ctlmod.modules
        for mod in mods.itervalues():
-               bot.msg(user, "- %s (%s)" % (mod.__name__, mod.__file__))
+               bot.msg(user, "- %s (%s)" % ((mod.__name__.split(".", 1))[1], mod.__file__))
        bot.msg(user, "Done.")
 
 def _whois(user, chan, showglevel=True, showclevel=True):