From 4a7e18cd03e18b825292f942d4a3c051a3e11615 Mon Sep 17 00:00:00 2001 From: Mathieu Pasquet Date: Wed, 4 Dec 2013 00:11:44 +0100 Subject: Handle signals differently than /quit - do not save the config (only for roster and stuff) - do not except that resetting the curses state will work everytime --- src/core.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core.py b/src/core.py index 1d2ab522..5450df5b 100644 --- a/src/core.py +++ b/src/core.py @@ -392,9 +392,25 @@ class Core(object): def exit_from_signal(self, *args, **kwargs): """ Quit when receiving SIGHUP or SIGTERM + + do not save the config because it is not a normal exit + (and only roster UI things are not yet saved) """ log.debug("Either SIGHUP or SIGTERM received. Exiting…") - self.command_quit() + if config.get('enable_user_mood', 'true') != 'false': + self.xmpp.plugin['xep_0107'].stop(block=False) + if config.get('enable_user_activity', 'true') != 'false': + self.xmpp.plugin['xep_0108'].stop(block=False) + if config.get('enable_user_gaming', 'true') != 'false': + self.xmpp.plugin['xep_0196'].stop(block=False) + self.plugin_manager.disable_plugins() + self.disconnect('') + self.running = False + try: + self.reset_curses() + except: # too bad + pass + sys.exit() def autoload_plugins(self): """ -- cgit v1.2.3