mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
54 lines
1.6 KiB
Python
Executable File
54 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
#This file needs to be able to handle all versions of Python we are likely to encounter
|
|
#Which is probably 2.6 and upwards
|
|
|
|
'''This module sets up sys.path from the environment
|
|
and runs the populator when called from semmle tools such as buildSnapshot.'''
|
|
|
|
import sys
|
|
import os
|
|
|
|
# The constant is put here instead of make_zips.py, since make_zips.py is not present in
|
|
# the distributed extractor-python code
|
|
def getzipfilename():
|
|
return 'python3src.zip'
|
|
|
|
|
|
def load_library():
|
|
try:
|
|
tools = os.environ['ODASA_TOOLS']
|
|
except KeyError:
|
|
try:
|
|
tools = os.path.join(os.environ['SEMMLE_DIST'], "tools")
|
|
except KeyError:
|
|
tools = sys.path[0]
|
|
try:
|
|
zippath = os.path.join(tools, getzipfilename())
|
|
sys.path = [ zippath ] + sys.path
|
|
except Exception:
|
|
#Failed to find tools. Error is reported below
|
|
zippath = tools
|
|
try:
|
|
import semmle.populator
|
|
except ImportError as ex:
|
|
print("FATAL ERROR: ")
|
|
print(ex)
|
|
if tools is not None:
|
|
if not os.path.exists(os.path.join(tools, getzipfilename())):
|
|
sys.stderr.write("No tracer library found in " + tools + "\n")
|
|
else:
|
|
sys.stderr.write("Unable to load tracer library at %s:\n" % zippath)
|
|
import traceback
|
|
traceback.print_exc(file=sys.stderr)
|
|
else:
|
|
print(sys.path)
|
|
sys.stderr.write("Cannot find Semmle tools\n")
|
|
sys.exit(2)
|
|
|
|
if __name__ == "__main__":
|
|
original_path = sys.path
|
|
load_library()
|
|
import semmle.populator
|
|
semmle.populator.main(original_path)
|