Ejemplo n.º 1
0
def main():
    parser = argparse.ArgumentParser(description='Run a master server')
    parser.add_argument('filename', type=str)
    parser.add_argument('--port', type=int, default=DEFAULT_PORT)
    parser.add_argument('--blacklist', type=str,
                        default=BLACKLIST_FILE)
    args = parser.parse_args()

    port = args.port
    filename = args.filename
    blacklist_file = args.blacklist

    if sys.platform == 'win32':
        from cuwo.win32 import WindowsEventLoop
        loop = WindowsEventLoop()
        asyncio.set_event_loop(loop)
    else:
        loop = asyncio.get_event_loop()

    loop.add_signal_handler(signal.SIGINT, loop.close)

    protocol = MasterServer(loop, filename, blacklist_file)

    print('Running cuwo (master) on port %s' % port)

    addr = ('0.0.0.0', port)
    asyncio.Task(loop.create_datagram_endpoint(lambda: protocol,
                                               local_addr=addr))
    loop.run_forever()