Use subprocess2 and DEPS-pinned depot_tools for download_tools.py
As https://webrtc.googlesource.com/src/+/915187b1afe8f708b06e24b77f372dcd34fe75f3
has the proper fixed rolled in, https://webrtc-review.googlesource.com/c/src/+/8820
can be relanded to benefit from using DEPS-pinned third_party/depot_tools instead
of the auto-updated one.
TBR=mbonadei@webrtc.org
Bug: chromium:773671, webrtc:8393
Change-Id: Id47671956d014ce24e5b60ce3aae5423930db1aa
No-try: True
Reviewed-on: https://webrtc-review.googlesource.com/10800
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20301}
diff --git a/tools_webrtc/download_tools.py b/tools_webrtc/download_tools.py
index 123fd3a..5cc8de2 100755
--- a/tools_webrtc/download_tools.py
+++ b/tools_webrtc/download_tools.py
@@ -15,13 +15,17 @@
"""
import os
-import subprocess
import sys
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
-# Needed to properly resolve PATH and executable extensions on Windows.
-USE_SHELL = sys.platform == 'win32'
+SRC_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir))
+DEPOT_TOOLS_DIR = os.path.join(SRC_DIR, 'third_party', 'depot_tools')
+sys.path.insert(0, DEPOT_TOOLS_DIR)
+
+
+import gclient_utils
+import subprocess2
def main(directories):
@@ -30,7 +34,8 @@
for path in directories:
cmd = [
- 'download_from_google_storage',
+ sys.executable,
+ os.path.join(DEPOT_TOOLS_DIR, 'download_from_google_storage.py'),
'--directory',
'--num_threads=10',
'--bucket', 'chrome-webrtc-resources',
@@ -39,7 +44,14 @@
path,
]
print 'Downloading precompiled tools...'
- subprocess.check_call(cmd, shell=USE_SHELL)
+
+ # Perform download similar to how gclient hooks execute.
+ try:
+ gclient_utils.CheckCallAndFilterAndHeader(cmd, cwd=SRC_DIR, always=True)
+ except (gclient_utils.Error, subprocess2.CalledProcessError) as e:
+ print 'Error: %s' % str(e)
+ return 2
+ return 0
if __name__ == '__main__':