def startup(args=sys.argv[1:]): import optparse parser = optparse.OptionParser() parser.add_option("-l", "--listen", help="listening address:port", default="localhost:7770", dest="listening_addrinfo") parser.add_option("-c", "--connect", help="purple address:port", default="localhost:7771", dest="purple_addrinfo") parser.add_option("-s", help="does nothing. for compatibility", action="store_true", dest="dummy") options, args = parser.parse_args(args) tmp = options.listening_addrinfo.rsplit(":", 1) assert len(tmp) >= 2 listen_address = tmp[0] listen_port = int(tmp[1]) tmp = options.purple_addrinfo.rsplit(":", 1) assert len(tmp) >= 2 connect_address = tmp[0] connect_port = int(tmp[1]) if True: debuglog.init("Agent", title_color="cyan") log_info( "INSTALLING REACTOR...") from twisted.internet import reactor as _reactor global reactor reactor = _reactor yobotproto.yobot_proto_setlogger("Agent") svc = YobotServerService() log_info("connecting to purple at %s:%d" % (connect_address, connect_port)) reactor.connectTCP(connect_address, connect_port, svc.getYobotPurpleFactory()) log_info("listening on %s:%d" % (listen_address, listen_port)) reactor.listenTCP(listen_port, svc.getYobotServerFactory(), interface=listen_address) reactor.run()
def startup(args=sys.argv): import optparse options = optparse.OptionParser() options.add_option("-p", "--plugin", dest="selected_plugins", action="append", help="include this plugin") options.add_option("-U", "--username", dest="username", help="use this IM username") options.add_option("-P", "--password", dest="password", help="use this password") options.add_option("-I", "--improto", dest="improto", help="use this IM protocol [see documentation for a list]") options.add_option("-c", "--config-dir", dest="configdir", help="client configuration directory", default=yobot_interfaces.get_yobot_homedir()) options.add_option("--use-proxy", dest="use_proxy", action="store_true", help="use env proxy settings", default=False) options.add_option("--agent-address", dest="agent_addrinfo", help="agent server:port") options, args = options.parse_args(args) #set our configuration directory yobot_interfaces.component_registry.register_component("yobot-config-dir", options.configdir) if options.selected_plugins: #generate dict: name_object = {} for plugin in yobot_interfaces.component_registry.get_plugins(): name_object[plugin.plugin_name] = plugin for p in options.selected_plugins: plugin_object = name_object.get(p) if not plugin_object: log_warn("couldn't find plugin", p) continue yobot_interfaces.component_registry.activate_plugin(plugin_object) tmp = options.agent_addrinfo if tmp: tmp = tmp.rsplit(":", 1) address = tmp[0] if len(tmp) >= 2: port = int(tmp[1]) else: #no address specified on the command line address, port = None, None debuglog.init("Client", title_color="green") yobotproto.yobot_proto_setlogger("Client") ui = UIClient() ui.run(address, port)