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)