aboutsummaryrefslogtreecommitdiff
path: root/modules/signals.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-12-10 05:27:35 +0000
committerGravatar jesopo2019-12-10 05:27:35 +0000
commit638eee0d685c06d258cb55287204ca97bca7c344 (patch)
tree33442439317ae2846f1efb7674b7a3758c8990a1 /modules/signals.py
parentmove sys.exit() codes to an enum in utils.consts (diff)
move core modules to src/core_modules, make them uneffected by white/black list
Diffstat (limited to 'modules/signals.py')
-rw-r--r--modules/signals.py65
1 files changed, 0 insertions, 65 deletions
diff --git a/modules/signals.py b/modules/signals.py
deleted file mode 100644
index 921b483c..00000000
--- a/modules/signals.py
+++ /dev/null
@@ -1,65 +0,0 @@
-import signal, sys
-from src import Config, IRCLine, ModuleManager, utils
-
-class Module(ModuleManager.BaseModule):
- def on_load(self):
- self._exited = False
- signal.signal(signal.SIGINT, self.SIGINT)
- signal.signal(signal.SIGUSR1, self.SIGUSR1)
- signal.signal(signal.SIGHUP, self.SIGHUP)
-
- def SIGINT(self, signum, frame):
- print()
- self.bot.trigger(lambda: self._kill(signum))
-
- def _kill(self, signum):
- if self._exited:
- return
- self._exited = True
-
- self.events.on("signal.interrupt").call(signum=signum)
-
- written = False
- for server in list(self.bot.servers.values()):
- if server.connected:
- server.socket.clear_send_buffer()
-
- line = IRCLine.ParsedLine("QUIT", ["Shutting down"])
- sent_line = server.send(line, immediate=True)
- sent_line.events.on("send").hook(self._make_hook(server))
-
- server.send_enabled = False
- written = True
-
- if not written:
- sys.exit()
-
- def _make_hook(self, server):
- return lambda e: self._disconnect_hook(server)
- def _disconnect_hook(self, server):
- self.bot.disconnect(server)
- if not self.bot.servers:
- sys.exit()
-
- def SIGUSR1(self, signum, frame):
- self.bot.trigger(self._reload_config)
-
- def SIGHUP(self, signum, frame):
- self.bot.trigger(self._SIGHUP)
- def _SIGHUP(self):
- self._reload_config()
- self._reload_modules()
-
- def _reload_config(self):
- self.bot.log.info("Reloading config file")
- self.bot.config.load()
- self.bot.log.info("Reloaded config file")
-
- def _reload_modules(self):
- self.bot.log.info("Reloading modules")
-
- result = self.bot.try_reload_modules()
- if result.success:
- self.bot.log.info(result.message)
- else:
- self.bot.log.warn(result.message)