diff --git a/src/ModuleManager.py b/src/ModuleManager.py index 51557a3e..6b04f47c 100644 --- a/src/ModuleManager.py +++ b/src/ModuleManager.py @@ -39,6 +39,10 @@ class BaseModule(object): pass def unload(self): pass + + def command_line(self, args: str): + pass + class LoadedModule(object): def __init__(self, name: str, @@ -157,7 +161,7 @@ class ModuleManager(object): return LoadedModule(name, module_object, context, import_name) - def load_module(self, bot: "IRCBot.Bot", name: str): + def load_module(self, bot: "IRCBot.Bot", name: str) -> LoadedModule: try: loaded_module = self._load_module(bot, name) except ModuleWarning as warning: @@ -174,6 +178,7 @@ class ModuleManager(object): loaded_module.name]: self.load_module(bot, requirement_name) self.log.debug("Module '%s' loaded", [loaded_module.name]) + return loaded_module def load_modules(self, bot: "IRCBot.Bot", whitelist: typing.List[str]=[], blacklist: typing.List[str]=[]): diff --git a/start.py b/start.py index 4db8d5a1..18793299 100755 --- a/start.py +++ b/start.py @@ -31,6 +31,9 @@ arg_parser.add_argument("--log-level", "-L") arg_parser.add_argument("--version", "-v", action="store_true") +arg_parser.add_argument("--module", "-m") +arg_parser.add_argument("--module-args", "-M") + args = arg_parser.parse_args() if args.version: @@ -60,6 +63,11 @@ modules = modules = ModuleManager.ModuleManager(events, exports, timers, config, bot = IRCBot.Bot(directory, args, cache, config, database, events, exports, log, modules, timers) +if args.module: + module = modules.load_module(bot, args.module) + module.module.command_line(args.module_args) + sys.exit(0) + whitelist = bot.get_setting("module-whitelist", []) blacklist = bot.get_setting("module-blacklist", [])