NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

autoexec.py (6051B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\autoexec.py
      2 from __future__ import print_function
      3 import eveprefs
      4 boot, prefs = eveprefs.Init()
      5 import sys
      6 import warnings
      7 
      8 class InstallWarningHandler(object):
      9 
     10     def __init__(self):
     11         self.oldhandler = warnings.showwarning
     12         warnings.showwarning = self.ShowWarning
     13 
     14     def __del__(self):
     15         if warnings:
     16             warnings.showwarning = self.oldhandler
     17 
     18     def ShowWarning(self, message, category, filename, lineno, file = None):
     19         import logmodule
     20         string = warnings.formatwarning(message, category, filename, lineno)
     21         logmodule.LogTraceback(extraText=string, severity=logmodule.LGWARN, nthParent=3)
     22         if not file:
     23             file = sys.stderr
     24         print(string, file=file)
     25 
     26 
     27 warningHandler = InstallWarningHandler()
     28 import blue
     29 import iocp
     30 import _slsocket as _socket
     31 if iocp.UsingIOCP():
     32     import carbonio
     33     select = None
     34     _socket.use_carbonio(True)
     35     carbonio._socket = _socket
     36     print('Network layer using: CarbonIO')
     37     if iocp.LoggingCarbonIO():
     38         print('installing CarbonIO logging callbacks')
     39         blue.net.InstallLoggingCallbacks()
     40 else:
     41     import stacklessio
     42     import slselect as select
     43     if hasattr(_socket, 'use_carbonio'):
     44         _socket.use_carbonio(False)
     45     stacklessio._socket = _socket
     46     print('Network layer using: StacklessIO')
     47 sys.modules['_socket'] = _socket
     48 sys.modules['select'] = select
     49 import logmodule
     50 logmodule.init(boot.role, prefs)
     51 import stdlogutils.logserver as stdlogserver
     52 stdlogserver.InitLoggingToLogserver(stdlogserver.GetLoggingLevelFromPrefs())
     53 from stacklesslib import monkeypatch
     54 monkeypatch.patch_ssl()
     55 import builtinmangler
     56 builtinmangler.MangleBuiltins()
     57 import os
     58 os.stat_float_times(False)
     59 import exceptions
     60 if not hasattr(exceptions, 'WindowsError'):
     61     exceptions.WindowsError = OSError
     62     import __builtin__
     63     __builtin__.WindowsError = OSError
     64 import whitelistpickle
     65 whitelistpickle.patch_cPickle()
     66 if blue.pyos.packaged:
     67     blue.paths.RegisterFileSystemBeforeLocal('Remote')
     68 else:
     69     blue.paths.RegisterFileSystemAfterLocal('Remote')
     70 if not blue.pyos.packaged:
     71     import __builtin__
     72     from platformtools.compatibility.exposure.debuggingutils import pydevdebugging
     73     __builtin__.GOPYCHARM = pydevdebugging.ConnectExeFileToDebugger3
     74     __builtin__.GOPYCHARM4 = pydevdebugging.ConnectExeFileToDebugger4
     75     __builtin__.GOPYCHARM5 = pydevdebugging.ConnectExeFileToDebugger5
     76     __builtin__.GOPYCHARM2017 = pydevdebugging.ConnectExeFileToDebugger2017
     77     __builtin__.GOPYCHARM2019 = pydevdebugging.ConnectExeFileToDebugger2019
     78     __builtin__.NOPYCHARM = pydevdebugging.StopPycharm
     79     allArgs = blue.pyos.GetArg()
     80     containsToolParam = False
     81     for arg in allArgs:
     82         if arg.startswith('/tools='):
     83             containsToolParam = True
     84             break
     85 
     86     if '/jessica' not in allArgs and not containsToolParam:
     87         import devenv
     88         sys.path.append(os.path.join(devenv.SHARED_TOOLS_PYTHONDIR, 'lib27xccp'))
     89         import packageaddwatcher
     90         packageaddwatcher.guard_metapath(boot.role)
     91 if '/enableTelemetry' in blue.pyos.GetArg():
     92     from pytelemetry import StartTelemetry
     93     blue.statistics.isPythonCaptureEnabled = True
     94     StartTelemetry()
     95 if prefs.ini.GetValue('GOPYCHARM', False):
     96     GOPYCHARM()
     97 try:
     98     blue.SetCrashKeyValues('role', boot.role)
     99     blue.SetCrashKeyValues('build', str(boot.build))
    100     args = blue.pyos.GetArg()
    101     if '/thinclient' not in args:
    102         import monolithsentry
    103         monolithsentry.set_sentry_crash_key()
    104     orgArgs = blue.pyos.GetArg()
    105     args = ''
    106     for each in orgArgs:
    107         if not each.startswith('/path') and not each.startswith('/ssoToken') and not each.startswith('/refreshToken'):
    108             args += each
    109             args += ' '
    110 
    111     blue.SetCrashKeyValues('startupArgs', args)
    112     bitCount = blue.sysinfo.cpu.bitCount
    113     computerInfo = {'memoryPhysical': blue.sysinfo.GetMemory().totalPhysical / 1024,
    114      'cpuArchitecture': blue.sysinfo.cpu.architecture,
    115      'cpuIdentifier': blue.sysinfo.cpu.identifier,
    116      'cpuLevel': blue.sysinfo.cpu.family,
    117      'cpuRevision': blue.sysinfo.cpu.revision,
    118      'cpuCount': blue.sysinfo.cpu.logicalCpuCount,
    119      'cpuMHz': blue.sysinfo.cpu.frequency,
    120      'cpuBitCount': bitCount,
    121      'osMajorVersion': blue.sysinfo.os.majorVersion,
    122      'osMinorVersion': blue.sysinfo.os.minorVersion,
    123      'osBuild': blue.sysinfo.os.buildNumber,
    124      'osPatch': blue.sysinfo.os.patch,
    125      'osPlatform': 2}
    126     for key, val in computerInfo.items():
    127         blue.SetCrashKeyValues(key, str(val))
    128 
    129     blue.SetCrashKeyValues('PDMData', blue.sysinfo.GetPDMData().encode('utf-8'))
    130 except RuntimeError:
    131     pass
    132 
    133 if not blue.pyos.packaged and '/disableSake' not in blue.pyos.GetArg():
    134     if sys.platform == 'win32':
    135         import watchdog.observers.winapi
    136         watchdog.observers.winapi.WATCHDOG_FILE_NOTIFY_FLAGS = watchdog.observers.winapi.FILE_NOTIFY_CHANGE_LAST_WRITE | watchdog.observers.winapi.FILE_NOTIFY_CHANGE_FILE_NAME
    137     import codereloading
    138     codereloading.InstallSakeAutocompiler()
    139 if blue.pyos.packaged:
    140     tool = None
    141 else:
    142     import inittools
    143     tool = inittools.gettool()
    144 if tool is None:
    145     __import__('autoexec_%s' % boot.role)
    146     if not blue.pyos.packaged and '/localdevtools' in blue.pyos.GetArg():
    147         from localdevtools import startup as localdevtools_startup
    148         localdevtools_startup.start_from_autoexec(role=boot.role)
    149 elif tool == 'zmqserver':
    150     platformToolsLib = blue.paths.ResolvePath(u'root:/../platformtools/external')
    151     if sys.platform == 'darwin':
    152         sys.path.append(os.path.join(platformToolsLib, 'macOS', 'x64', 'AppleClang'))
    153     elif sys.platform == 'win32':
    154         sys.path.append(os.path.join(platformToolsLib, 'x64'))
    155     else:
    156         raise RuntimeError('Unsupported platform for behaviour tests')
    157     import exefileterminal._serverstartup
    158     exefileterminal._serverstartup.Run()
    159 else:
    160 
    161     def run():
    162         inittools.run_(tool)