#!/usr/bin/python # -*- coding: utf-8 -*- """ Simple script to send messages to an IRC channel in Fire and Forget mode (non persistent connection) Usage: git-post-commit Read lines one by one on the standard input and print them in in the channel """ import irclib import sys class IRCFire(irclib.SimpleIRCClient): def __init__(self, target): irclib.SimpleIRCClient.__init__(self) self.target = target def on_welcome(self, connection, event): connection.join(self.target) def on_join(self, connection, event): for line in sys.stdin: self.connection.privmsg(self.target, line) self.connection.quit("Commit sent") def on_disconnect(self, connection, event): sys.exit(0) def main(): if len(sys.argv) != 4: print "Usage: " + sys.argv[0] + " " sys.exit(1) s = sys.argv[1].split(":", 1) server = s[0] if len(s) == 2: try: port = int(s[1]) except ValueError: print "Error: Erroneous port." sys.exit(1) else: port = 6667 nickname = sys.argv[2] channel = sys.argv[3] c = IRCFire(channel) try: c.connect(server, port, nickname) except irclib.ServerConnectionError, x: print x sys.exit(1) c.start() if __name__ == "__main__": main()