X-Git-Url: http://gitweb.pimeys.fr/?p=bots%2Fsaturnin.git;a=blobdiff_plain;f=saturnin.py;h=7cf522235c37136fa74ba6c6e5413bea44b9700d;hp=87e5bafbfb486f0f2b90a1a78edb35b3f5d93528;hb=31f306a50189a2b9656f0e1966dc406c20402aca;hpb=dcc8c3b3ce04fd6aceecb01aa3c70289abd18d48 diff --git a/saturnin.py b/saturnin.py index 87e5baf..7cf5222 100755 --- a/saturnin.py +++ b/saturnin.py @@ -355,8 +355,8 @@ class Saturnin(ircbot.SingleServerIRCBot): notunderstood=True elif cmd=="reload": if auteur in self.ops: - reload(config) - serv.privmsg(auteur,"done") + self.reload(auteur) + log(self.serveur,"priv",auteur," ".join(message)+"[successful]") else: notunderstood=True elif cmd=="score": @@ -467,6 +467,10 @@ class Saturnin(ircbot.SingleServerIRCBot): else: serv.privmsg(channel,("%s: %s"%(auteur,random.choice(config.quit_fail_messages))).encode("utf8")) log(self.serveur,channel,auteur,message+"[failed]") + elif cmd == "reload": + if auteur in self.ops: + log(self.serveur, channel, auteur, message+"[successful]") + self.reload(channel) elif cmd in ["part","leave","dégage","va-t-en","tut'tiresailleurs,c'estmesgalets"]: if auteur in self.ops and (not (channel in self.stay_channels) or auteur in self.overops): @@ -583,6 +587,16 @@ class Saturnin(ircbot.SingleServerIRCBot): return self.serv.get_nickname() nick=property(_getnick) + def reload(self, auteur=None): + reload(config) + if auteur in [None, "SIGHUP"]: + towrite = "Config reloaded" + " (SIGHUP received)"*(auteur == "SIGHUP") + for to in config.report_bugs_to: + self.serv.privmsg(to, towrite) + log(self.serveur, towrite) + else: + self.serv.privmsg(auteur,"Config reloaded") + def start_as_daemon(self, outfile): sys.stderr = Logger(outfile) self.start() @@ -634,6 +648,10 @@ if __name__=="__main__": print "Server Unknown : %s"%(serveur) exit(404) saturnin = Saturnin(serveur,debug) + # Si on reçoit un SIGHUP, on reload la config + def sighup_handler(signum, frame): + saturnin.reload("SIGHUP") + signal.signal(signal.SIGHUP, sighup_handler) if daemon: child_pid = os.fork() if child_pid == 0: