diff options
| author | 2019-10-11 15:41:51 +0100 | |
|---|---|---|
| committer | 2019-10-11 15:41:51 +0100 | |
| commit | 0207e8e2b6831506c958d3377084b6a0910b7664 (patch) | |
| tree | b0674d9abc6a84a78f118781c3a8a46bcf5585df /modules | |
| parent | no longer treat ctrl+c as "shutdown" - bitbotctl will take this job (diff) | |
| signature | ||
Revert "no longer treat ctrl+c as "shutdown" - bitbotctl will take this job"
This reverts commit 73e6ede8cc1bd7c8a8946d3e77f5157a5177a775.
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/signals.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/modules/signals.py b/modules/signals.py index eadf4d64..336a83d3 100644 --- a/modules/signals.py +++ b/modules/signals.py @@ -10,6 +10,29 @@ class Module(ModuleManager.BaseModule): 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 = utils.irc.protocol.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.bot.disconnect(server) |
