blob: 609665b002795a6f6ffb4e72bc7ad9afef3240bf [file] [log] [blame]
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Script for ensuring that a python action runs under Python2, not Python3."""
import subprocess
import sys
if sys.version_info.major == 2:
# If we get here, we're already Python2, so just re-execute the
# command without the wrapper.
exe = sys.executable
elif sys.executable.endswith('.exe'):
# If we get here, we're a Python3 executable likely running on
# Windows, so look for the Python2 wrapper in depot_tools. We
# can't invoke it directly because some command lines might exceed the
# 8K commamand line length limit in cmd.exe, but we can use it to
# find the underlying executable, which we can then safely call.
exe = subprocess.check_output(
['python.bat', '-c',
'import sys; print(sys.executable)']).decode('utf8').strip()
else:
# If we get here, we are a Python3 executable. Hope that we can find
# a `python2.7` in path somewhere.
exe = 'python2.7'
sys.exit(subprocess.call([exe] + sys.argv[1:]))