From: Eric S. Raymond Date: Sat, 30 Nov 2013 14:14:35 +0000 (-0500) Subject: I think this would work to terminate immediaate mode... X-Git-Tag: 2.3~7 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f51c7345dd4cfc7f0cb0f2899425a5e8d820ac43;p=irker.git I think this would work to terminate immediaate mode... ...if we could see message traffic! --- diff --git a/irkerd b/irkerd index f7a1adc..40cef48 100755 --- a/irkerd +++ b/irkerd @@ -684,6 +684,7 @@ class Irker: self.irc.add_event_handler("kick", self._handle_kick) self.irc.add_event_handler("every_raw_message", self._handle_every_raw_message) self.servers = {} + self.until = None def thread_launch(self): thread = threading.Thread(target=self.irc.spin) thread.setDaemon(True) @@ -749,6 +750,9 @@ class Irker: with open(logfile, "a") as logfp: logfp.write("%03f|%s|%s\n" % \ (time.time(), event.source, event.arguments[0])) + if self.until is not None: + if self.until == event.arguments[0]: + raise SystemExit, 1 def pending(self): "Do we have any pending message traffic?" return [k for (k, v) in self.servers.items() if v.pending()] @@ -870,8 +874,8 @@ if __name__ == '__main__': if immediate: (to, privmsg) = val.split(",") irker.handle('{"to":"%s","privmsg":"%s"}' % (to, privmsg)) + irker.until = privmsg irker.irc.spin() - # FIXME: This mode does not yet terminate else: irker.thread_launch() try: