def parseOptions(): """parse command line options and save the values""" args = KCmdLineArgs.parsedArgs() Internal.app = APP Options.playOpen |= args.isSet('playopen') Options.showRulesets|= args.isSet('rulesets') Options.rulesetName = str(args.getOption('ruleset')) if args.isSet('host'): Options.host = str(args.getOption('host')) if args.isSet('player'): Options.player = str(args.getOption('player')) if args.isSet('ai'): Options.AI = str(args.getOption('ai')) if args.isSet('csv'): Options.csv = str(args.getOption('csv')) if args.isSet('socket'): Options.socket = str(args.getOption('socket')) SingleshotOptions.game = str(args.getOption('game')) Options.gui |= args.isSet('gui') if args.isSet('table'): SingleshotOptions.table = int(args.getOption('table')) if args.isSet('join'): SingleshotOptions.join = int(args.getOption('join')) Options.demo |= args.isSet('demo') Options.demo |= not Options.gui Internal.autoPlay = Options.demo msg = Debug.setOptions(str(args.getOption('debug'))) if msg: print msg sys.exit(2) from query import initDb if not initDb(): raise SystemExit('Cannot initialize database') initRulesets() Options.fixed = True # may not be changed anymore
def kajonggServer(): """start the server""" # pylint: disable=too-many-branches options = parseArgs() if not initDb(): sys.exit(1) realm = MJRealm() realm.server = MJServer() kajonggPortal = portal.Portal(realm, [DBPasswordChecker()]) import predefined predefined.load() try: if Options.socket: # we do not want tracebacks to go from server to client, # please check on the server side instead factory = pb.PBServerFactory(kajonggPortal, unsafeTracebacks=False) if os.name == 'nt': if Debug.connections: logDebug('local server listening on 127.0.0.1 port %d' % options.port) reactor.listenTCP(options.port, factory, interface='127.0.0.1') else: if Debug.connections: logDebug('local server listening on UNIX socket %s' % Options.socket) reactor.listenUNIX(Options.socket, factory) else: if Debug.connections: logDebug('server listening on port %d' % options.port) reactor.listenTCP(options.port, pb.PBServerFactory(kajonggPortal)) except error.CannotListenError as errObj: logWarning(errObj) sys.exit(1) else: reactor.run()
def kajonggServer(): """start the server""" from optparse import OptionParser parser = OptionParser() defaultPort = InternalParameters.defaultPort() parser.add_option('', '--port', dest='port', help=m18n('the server will listen on PORT (%d)' % defaultPort), type=int, default=defaultPort) parser.add_option('', '--socket', dest='socket', help=m18n('the server will listen on SOCKET'), default=None) parser.add_option('', '--db', dest='dbpath', help=m18n('name of the database'), default=None) parser.add_option('', '--local', dest='local', action='store_true', help=m18n('start a local game server'), default=False) parser.add_option('', '--continue', dest='continueServer', action='store_true', help=m18n('do not terminate local game server after last client disconnects'), default=False) parser.add_option('', '--debug', dest='debug', help=Debug.help()) (options, args) = parser.parse_args() if args and ''.join(args): logWarning(m18n('unrecognized arguments:%1', ' '.join(args))) sys.exit(2) InternalParameters.continueServer |= options.continueServer if options.dbpath: InternalParameters.dbPath = os.path.expanduser(options.dbpath) if options.local: InternalParameters.socket = socketName() if options.socket: InternalParameters.socket = options.socket Debug.setOptions(options.debug) Query.dbhandle = initDb() realm = MJRealm() realm.server = MJServer() kajonggPortal = portal.Portal(realm, [DBPasswordChecker()]) # pylint: disable=E1101 # pylint thinks reactor is missing listen* and run loadPredefinedRulesets() try: if InternalParameters.socket: if os.name == 'nt': logInfo('local server listening on 127.0.0.1 port %d' % options.port) reactor.listenTCP(options.port, pb.PBServerFactory(kajonggPortal), interface='127.0.0.1') else: logInfo('local server listening on UNIX socket %s' % InternalParameters.socket) reactor.listenUNIX(InternalParameters.socket, pb.PBServerFactory(kajonggPortal)) else: logInfo('server listening on port %d' % options.port) reactor.listenTCP(options.port, pb.PBServerFactory(kajonggPortal)) except error.CannotListenError, errObj: logWarning(errObj)
def parseOptions(): """parse command line options and save the values""" args = KCmdLineArgs.parsedArgs() Internal.app = APP Options.playOpen |= args.isSet("playopen") Options.showRulesets |= args.isSet("rulesets") Options.rulesetName = str(args.getOption("ruleset")) if args.isSet("host"): Options.host = str(args.getOption("host")) if args.isSet("player"): Options.player = unicodeString(args.getOption("player")) if args.isSet("rounds"): Options.rounds = int(args.getOption("rounds")) if args.isSet("ai"): Options.AI = str(args.getOption("ai")) if args.isSet("csv"): Options.csv = str(args.getOption("csv")) if args.isSet("socket"): Options.socket = str(args.getOption("socket")) if args.isSet("port"): Options.port = str(args.getOption("port")) SingleshotOptions.game = str(args.getOption("game")) Options.gui |= args.isSet("gui") if args.isSet("table"): SingleshotOptions.table = int(args.getOption("table")) if args.isSet("join"): SingleshotOptions.join = int(args.getOption("join")) Options.demo |= args.isSet("demo") Options.demo |= not Options.gui Internal.autoPlay = Options.demo msg = Debug.setOptions(str(args.getOption("debug"))) if msg: Internal.logger.debug(msg) logging.shutdown() sys.exit(2) from query import initDb if not initDb(): raise SystemExit("Cannot initialize database") initRulesets() Options.fixed = True # may not be changed anymore