| Index: download_from_google_storage.py
|
| ===================================================================
|
| --- download_from_google_storage.py (revision 239047)
|
| +++ download_from_google_storage.py (working copy)
|
| @@ -199,13 +199,21 @@
|
| out_q.put('%d> %s' % (thread_num, err))
|
| ret_codes.put((code, err))
|
|
|
| - # Mark executable if necessary. We 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".
|
| - if sys.platform != 'win32':
|
| + # Set executable bit.
|
| + if sys.platform == 'cygwin':
|
| + # Under cygwin, mark all files as executable. The executable flag in
|
| + # Google Storage will not be set when uploading from Windows, so if
|
| + # this script is running under cygwin and we're downloading an
|
| + # executable, it will be unrunnable from inside cygwin without this.
|
| + st = os.stat(output_filename)
|
| + os.chmod(output_filename, st.st_mode | stat.S_IEXEC)
|
| + 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)
|
| if code != 0:
|
| out_q.put('%d> %s' % (thread_num, err))
|
|
|