Merge "Add SetHostToolLocation." am: 3a9bd34ec2

Original change: https://android-review.googlesource.com/c/platform/build/+/1377723

Change-Id: Icf1031f9a0bfcde04a1619fe22d6199755351f61
This commit is contained in:
Yifan Hong 2020-07-31 23:11:07 +00:00 committed by Automerger Merge Worker
commit 5864c30fc2

View file

@ -96,6 +96,7 @@ class Options(object):
self.cache_size = None
self.stash_threshold = 0.8
self.logfile = None
self.host_tools = {}
OPTIONS = Options()
@ -213,6 +214,10 @@ def InitLogging():
logging.config.dictConfig(config)
def SetHostToolLocation(tool_name, location):
OPTIONS.host_tools[tool_name] = location
def Run(args, verbose=None, **kwargs):
"""Creates and returns a subprocess.Popen object.
@ -234,6 +239,14 @@ def Run(args, verbose=None, **kwargs):
kwargs['stderr'] = subprocess.STDOUT
if 'universal_newlines' not in kwargs:
kwargs['universal_newlines'] = True
# If explicitly set host tool location before, use that location to avoid
# PATH violation. Make a copy of args in case client relies on the content
# of args later.
if args and args[0] in OPTIONS.host_tools:
args = args[:]
args[0] = OPTIONS.host_tools[args[0]]
# Don't log any if caller explicitly says so.
if verbose:
logger.info(" Running: \"%s\"", " ".join(args))