예제 #1
0
파일: server.py 프로젝트: matpow2/cuwo
def main():
    # make sure we enable crash logging as early as possible
    faulthandler.enable()

    # for py2exe
    if hasattr(sys, 'frozen'):
        path = os.path.dirname(sys.executable)
        root = os.path.abspath(os.path.join(path, '..'))
        sys.path.append(root)

    config = ConfigObject('./config')

    if sys.platform == 'win32':
        from cuwo.win32 import WindowsEventLoop
        loop = WindowsEventLoop()
        loop.set_clock_resolution(1 * 1e-3)
        asyncio.set_event_loop(loop)
    else:
        try:
            import uvloop
            asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
            print('(using uvloop)')
        except ImportError:
            pass
        loop = asyncio.get_event_loop()

    if config.base.use_tgen:
        from cuwo.download import download_dependencies
        download_dependencies()

    server = CubeWorldServer(loop, config)

    loop.add_signal_handler(signal.SIGINT, server.stop)

    print('cuwo running on port %s' % config.base.port)

    if config.base.profile_file is None:
        loop.run_forever()
    else:
        import cProfile
        cProfile.run('loop.run_forever()', filename=config.base.profile_file)

    sys.exit(server.exit_code)
예제 #2
0
파일: server.py 프로젝트: Twistere/cuwo
def main():
    # make sure we enable crash logging as early as possible
    faulthandler.enable()

    # for py2exe
    if hasattr(sys, 'frozen'):
        path = os.path.dirname(sys.executable)
        root = os.path.abspath(os.path.join(path, '..'))
        sys.path.append(root)

    config = ConfigObject('./config')

    if sys.platform == 'win32':
        from cuwo.win32 import WindowsEventLoop
        loop = WindowsEventLoop()
        loop.set_clock_resolution(1 * 1e-3)
        asyncio.set_event_loop(loop)
    else:
        try:
            import uvloop
            asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
            print('(using uvloop)')
        except ImportError:
            pass
        loop = asyncio.get_event_loop()

    if config.base.use_tgen:
        from cuwo.download import download_dependencies
        download_dependencies()

    server = CubeWorldServer(loop, config)

    loop.add_signal_handler(signal.SIGINT, server.stop)

    print('cuwo running on port %s' % config.base.port)

    if config.base.profile_file is None:
        loop.run_forever()
    else:
        import cProfile
        cProfile.run('loop.run_forever()', filename=config.base.profile_file)

    sys.exit(server.exit_code)