Ejemplo n.º 1
0
def Main():
    args = ParseArguments()

    if args.stdout is not None:
        sys.stdout = open(args.stdout, 'w')
    if args.stderr is not None:
        sys.stderr = open(args.stderr, 'w')

    SetupLogging(args.log)
    options, hmac_secret = SetupOptions(args.options_file)

    # This ensures that ycm_core is not loaded before extra conf
    # preload was run.
    YcmCoreSanityCheck()
    extra_conf_store.CallGlobalExtraConfYcmCorePreloadIfExists()

    if not CompatibleWithCurrentCoreVersion():
        # ycm_core.[so|dll|dylib] is too old and needs to be recompiled.
        sys.exit(2)

    PossiblyDetachFromTerminal()

    # This can't be a top-level import because it transitively imports
    # ycm_core which we want to be imported ONLY after extra conf
    # preload has executed.
    from ycmd import handlers
    handlers.UpdateUserOptions(options)
    handlers.SetHmacSecret(hmac_secret)
    SetUpSignalHandler(args.stdout, args.stderr, args.keep_logfiles)
    handlers.app.install(WatchdogPlugin(args.idle_suicide_seconds))
    handlers.app.install(HmacPlugin(hmac_secret))
    CloseStdin()
    waitress.serve(handlers.app, host=args.host, port=args.port, threads=30)
Ejemplo n.º 2
0
def Main():
    args = ParseArguments()

    if args.stdout is not None:
        sys.stdout = OpenForStdHandle(args.stdout)
    if args.stderr is not None:
        sys.stderr = OpenForStdHandle(args.stderr)

    SetupLogging(args.log)
    options, hmac_secret = SetupOptions(args.options_file)

    # This ensures that ycm_core is not loaded before extra conf
    # preload was run.
    YcmCoreSanityCheck()
    extra_conf_store.CallGlobalExtraConfYcmCorePreloadIfExists()

    code = ImportAndCheckCore()
    if code:
        sys.exit(code)

    PossiblyDetachFromTerminal()

    # These can't be top-level imports because they transitively import
    # ycm_core which we want to be imported ONLY after extra conf
    # preload has executed.
    from ycmd import handlers
    from ycmd.watchdog_plugin import WatchdogPlugin
    handlers.UpdateUserOptions(options)
    handlers.SetHmacSecret(hmac_secret)
    handlers.KeepSubserversAlive(args.check_interval_seconds)
    SetUpSignalHandler()
    # Functions registered by the atexit module are called at program termination
    # in last in, first out order.
    atexit.register(CleanUpLogfiles, args.stdout, args.stderr,
                    args.keep_logfiles)
    atexit.register(handlers.ServerCleanup)
    handlers.app.install(
        WatchdogPlugin(args.idle_suicide_seconds, args.check_interval_seconds))
    handlers.app.install(HmacPlugin(hmac_secret))
    CloseStdin()
    handlers.wsgi_server = StoppableWSGIServer(handlers.app,
                                               host=args.host,
                                               port=args.port)
    if sys.stdin is not None:
        print(f'serving on http://{ handlers.wsgi_server.server_name }:'
              f'{ handlers.wsgi_server.server_port }')
    handlers.wsgi_server.serve_forever()
    handlers.wsgi_server.server_close()
    handlers.ServerCleanup()
Ejemplo n.º 3
0
def Main():
    args = ParseArguments()

    if args.stdout is not None:
        sys.stdout = OpenForStdHandle(args.stdout)
    if args.stderr is not None:
        sys.stderr = OpenForStdHandle(args.stderr)

    SetupLogging(args.log)
    options, hmac_secret = SetupOptions(args.options_file)

    # This ensures that ycm_core is not loaded before extra conf
    # preload was run.
    YcmCoreSanityCheck()
    extra_conf_store.CallGlobalExtraConfYcmCorePreloadIfExists()

    code = CompatibleWithCurrentCore()
    if code:
        sys.exit(code)

    PossiblyDetachFromTerminal()

    # These can't be top-level imports because they transitively import
    # ycm_core which we want to be imported ONLY after extra conf
    # preload has executed.
    from ycmd import handlers
    from ycmd.watchdog_plugin import WatchdogPlugin
    handlers.UpdateUserOptions(options)
    handlers.SetHmacSecret(hmac_secret)
    handlers.KeepSubserversAlive(args.check_interval_seconds)
    SetUpSignalHandler(args.stdout, args.stderr, args.keep_logfiles)
    handlers.app.install(
        WatchdogPlugin(args.idle_suicide_seconds, args.check_interval_seconds))
    handlers.app.install(HmacPlugin(hmac_secret))
    CloseStdin()
    handlers.wsgi_server = StoppableWSGIServer(handlers.app,
                                               host=args.host,
                                               port=args.port,
                                               threads=30)
    handlers.wsgi_server.Run()