aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-02-24 10:43:46 +0000
committerGravatar jesopo2019-02-24 10:43:46 +0000
commitfaa305f2e8494b29bac28062a7336974f46907b2 (patch)
tree717a96931b868adc45b675096c01aa2ac0f2a3f7
parentDon't duplicate `"other-error"` (sasl.scram) (diff)
Add -m/-M args to ./start.py that call `command_line` on individual modules
-rw-r--r--src/ModuleManager.py7
-rwxr-xr-xstart.py8
2 files changed, 14 insertions, 1 deletions
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", [])