All pastes #625710 Raw Edit

Stuff

public python v1 · immutable
·published 2007-07-19 03:35 UTC
rendered paste body
#!/usr/bin/python"""%(name)s, an IRC<->dAmn proxyVersion %(version)s<http://blog.doofsmack.com/frabjous/>Usage:%(progname)s\t [--help] [-i 0.0.0.0] [-p 6667]\t\t [-d [start|stop|restart]]\t\t [--logfile /tmp/frabjous.log]\t\t [--pidfile frabjous.pid]Arguments: --help:         Show this message and quit                  -i or --ip:     IP to bind to when listening for incoming connections.                 Use 127.0.0.1 to only listen for connections from localhost.                 Defaults to 0.0.0.0 (listen on all interfaces)                  -p or --port:   Port to bind to when listening for incoming connections.                 Defaults to 6667                  -d or --daemon: Start, stop, or restart as a daemon, depending on argument.                 If omitted, will not run as a daemon.                  --logfile:      Specifies where to log to in daemon mode.                 Defaults to /tmp/frabjous.log --pidfile:      Specifies where to store the pid file in daemon mode.                 Defaults to frabjous.pid in the current directory.%(gplinfo)s%(name)s is (c) 2005 Kevin Wallace<kevin@doofsmack.com><http://doofsmack.com/>"""import sysimport errnoimport ircdimport getoptimport SocketServer, socketimport daemonizename        = ircd.NAMEversion     = ircd.VERSIONprogname    = sys.argv[0]gplinfo     = """%(name)s comes with ABSOLUTELY NO WARRANTY.This is free software, you are welcome to redistribute it under certaincontitions. See LICENSE.txt for details.""" % vars()__doc__ = __doc__ % vars()def usage(progname):    print __doc__def main(argv):    progname = argv[0]    # set defaults    ip      = ""    port    = 6667    daemon_action = False    stdoutfile = "/tmp/frabjous.log"    pidfile = "frabjous.pid"    # grab arguments    try:        (list, args) = getopt.getopt(argv[1:], "i:p:d:", ["help", "ip=", "port=", "daemon=", "logfile=", "pidfile="])        if list == [] and len(args) == 1 and args[0] in ("start", "stop", "restart"):            daemon_action = args[0]    except getopt.GetoptError:        usage(progname)        sys.exit(2)    # parse arguments    for (opt, value) in list:        if opt == "--help":            usage(progname)            sys.exit()        elif opt in ("-i", "--ip"):            ip = value        elif opt in ("-p", "--port"):            port = int(value)        elif opt in ("-d", "--daemon"):            daemon_action = value        elif opt == "--logfile":            stdoutfile = value        elif opt == "--pidfile":            pidfile = value    print "%s\n" % gplinfo % vars()    if daemon_action:        daemonize.startstop(daemon_action, stdout=stdoutfile, pidfile=pidfile)    try:        server = SocketServer.ThreadingTCPServer((ip, port), ircd.dAmnIRCDHandler)    except socket.error, (err, description):        if err == errno.EADDRINUSE:            print "Unable to start server: %s\n(is another instance of %s running?)" % (description, name)            sys.exit(2)        else:            raise e    if ip == "":        print "Listening for incoming connections on *:%s" % (port)    else:        print "Listening for incoming connections on %s:%s" % (ip, port)    try:        server.serve_forever()    except KeyboardInterrupt:        print "Caught ctrl-c, quitting."if __name__ == "__main__":    main(sys.argv)