Implement loading new modules at runtime
This commit is contained in:
parent
cb7142ef88
commit
378c4d9bba
|
@ -0,0 +1,23 @@
|
|||
from core.main import *
|
||||
from utils.loaders.single_loader import loadSingle
|
||||
|
||||
class Loadmod:
|
||||
def __init__(self, register):
|
||||
register("loadmod", self.loadmod)
|
||||
|
||||
def loadmod(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length):
|
||||
if authed:
|
||||
if length == 2:
|
||||
rtrn = loadSingle(spl[1], register)
|
||||
if rtrn == True:
|
||||
success("Loaded module %s" % spl[1])
|
||||
return
|
||||
else:
|
||||
failure("Error loading module %s: %s" % (spl[1], rtrn))
|
||||
return
|
||||
else:
|
||||
incUsage("loadmod")
|
||||
return
|
||||
else:
|
||||
incUsage(None)
|
||||
return
|
|
@ -15,5 +15,6 @@
|
|||
"stats": "stats [<name>]",
|
||||
"save": "save <config|keyconf|pool|help|wholist|all>",
|
||||
"load": "load <config|keyconf|pool|help|wholist|all>",
|
||||
"dist": "dist"
|
||||
}
|
||||
"dist": "dist",
|
||||
"loadmod": "loadmod <module>"
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ def parseCommand(addr, authed, data):
|
|||
failure("No text was sent")
|
||||
return
|
||||
for i in CommandMap.keys():
|
||||
if data.startswith(i):
|
||||
if spl[0] == i:
|
||||
CommandMap[i](addr, authed, data, obj, spl, success, failure, info, incUsage, length)
|
||||
return
|
||||
incUsage(None)
|
||||
|
|
|
@ -8,8 +8,8 @@ def loadCommands(func):
|
|||
if filename.endswith('.py') and filename != "__init__.py":
|
||||
commandName = filename[0:-3]
|
||||
className = commandName.capitalize()
|
||||
#try:
|
||||
__import__('commands.%s' % commandName)
|
||||
eval('commands.%s.%s(func)' % (commandName, className))
|
||||
#except Exception as err:
|
||||
# error("Exception while loading command %s:\n%s" % (commandName, err))
|
||||
try:
|
||||
__import__('commands.%s' % commandName)
|
||||
eval('commands.%s.%s(func)' % (commandName, className))
|
||||
except Exception as err:
|
||||
error("Exception while loading command %s:\n%s" % (commandName, err))
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
from os import listdir
|
||||
from core.main import *
|
||||
from utils.logging.log import *
|
||||
import commands
|
||||
|
||||
def loadSingle(command, func):
|
||||
if command+".py" in listdir("commands"):
|
||||
try:
|
||||
if command in CommandMap.keys():
|
||||
return "Cannot reload modules"
|
||||
else:
|
||||
className = command.capitalize()
|
||||
__import__("commands.%s" % command)
|
||||
eval("commands.%s.%s(func)" % (command, className))
|
||||
return True
|
||||
except Exception as err:
|
||||
return err
|
Loading…
Reference in New Issue