From 20bef06989f0e7ad23efeb6f58fc856c14adaf2e Mon Sep 17 00:00:00 2001 From: "dpranke@chromium.org" Date: Wed, 17 Dec 2014 23:47:23 +0000 Subject: [PATCH] Fix setting the executable bit in download_from_google_storage. The new GSUtil (or gs protocol, who knows) strips off the redundent x-goog-meta string from the metadata key. This CL compensates for that. Also since we're on 4.7, we can use the faster gsutil stat instead of gsutil ls -L. BUG= TEST=ran download_from_google_storage against compiler_proxy.sha, works NOTREECHECKS=true NOTRY=true R=dnj@chromium.org, pgervais@chromium.org Review URL: https://codereview.chromium.org/809123003 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293432 0039d316-1c4b-4281-b951-d872f2087c98 --- download_from_google_storage.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/download_from_google_storage.py b/download_from_google_storage.py index f73b3bd0a..09be339d4 100755 --- a/download_from_google_storage.py +++ b/download_from_google_storage.py @@ -248,15 +248,11 @@ def _downloader_worker_thread(thread_num, q, force, base_url, elif sys.platform != 'win32': # On non-Windows platforms, key off of the custom header # "x-goog-meta-executable". - # - # TODO(hinoka): It is supposedly faster to use "gsutil stat" but that - # doesn't appear to be supported by the gsutil currently in our tree. When - # we update, this code should use that instead of "gsutil ls -L". - code, out, _ = gsutil.check_call('ls', '-L', file_url) + code, out, _ = gsutil.check_call('stat', file_url) if code != 0: out_q.put('%d> %s' % (thread_num, err)) ret_codes.put((code, err)) - elif re.search('x-goog-meta-executable:', out): + elif re.search(r'executable:\s*1', out): st = os.stat(output_filename) os.chmod(output_filename, st.st_mode | stat.S_IEXEC)