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

inittools.py (2770B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\inittools.py
      2 import blue
      3 import bluepy
      4 import logmodule
      5 import os
      6 import site
      7 import sys
      8 import traceback
      9 import platform
     10 
     11 def gettool():
     12     args = blue.pyos.GetArg()[1:]
     13     for each in iter(args):
     14         split = each.split('=')
     15         if split[0].strip() == '/tools' and len(split) > 1:
     16             tool = split[1].strip()
     17             return tool
     18 
     19 
     20 def run_(tool):
     21     isWin32 = blue.sysinfo.processBitCount == 32
     22     isOSX = platform.system().lower() == 'darwin'
     23     join = os.path.join
     24     binstr = 'win32' if isWin32 else 'x64'
     25     carbonTools = blue.paths.ResolvePath(u'root:/../carbon/tools')
     26     platformTools = blue.paths.ResolvePath(u'root:/../platformtools')
     27     site.addsitedir(blue.paths.ResolvePath(u'root:/../packages'))
     28     sys.path.append(blue.paths.ResolvePath(u'root:/..'))
     29     eveTools = blue.paths.ResolvePath(u'root:/tools')
     30     carbonToolsLib = os.path.join(carbonTools, 'lib')
     31     sys.path.append(carbonToolsLib)
     32     if isOSX:
     33         sys.path.append(join(platformTools, 'external', 'macOS', binstr, 'AppleClang'))
     34     else:
     35         sys.path.append(join(platformTools, 'external', binstr))
     36     if not blue.pyos.packaged and '/localdevtools' in blue.pyos.GetArg():
     37         from eveprefs import boot
     38         from localdevtools import startup as localdevtools_startup
     39         localdevtools_startup.start_from_autoexec(role=boot.role)
     40 
     41     def execIfExists(toolPath):
     42         path = '%s/startup/%s.py' % (toolPath, tool)
     43         if os.path.exists(path):
     44             _ExecScript(path, tool)
     45             return True
     46         return False
     47 
     48     if os.path.exists(tool):
     49         _ExecScript(tool, tool)
     50     elif execIfExists(eveTools):
     51         pass
     52     elif execIfExists(carbonTools):
     53         pass
     54     elif execIfExists(platformTools):
     55         pass
     56     else:
     57         errStr = 'The following file was not found on your machine: /tools/startup/%s.py' % tool
     58         _LogAndTerm(errStr, tool)
     59 
     60 
     61 def _LogAndTerm(errstr, tool):
     62     silent = '/silent' in blue.pyos.GetArg()
     63     if not silent:
     64         blue.os.ShowErrorMessageBox('Failed to initialize %s' % tool, errstr)
     65         bluepy.Terminate(1, errstr)
     66 
     67 
     68 def _ExecScript(path, tool):
     69     try:
     70         rf = blue.classes.CreateInstance('blue.ResFile')
     71         rf.OpenAlways(path)
     72         try:
     73             data = rf.Read()
     74         finally:
     75             rf.Close()
     76 
     77         data = data.replace('\r\n', '\n')
     78         codeObject = compile(data, path, 'exec')
     79         eval(codeObject, globals())
     80         runFunc = globals().get('run', None)
     81         if runFunc is not None:
     82             runFunc()
     83     except Exception as e:
     84         traceback.print_exc()
     85         logmodule.LogException()
     86         _LogAndTerm(str(e), tool)