diff options
Diffstat (limited to 'gsutil-use-google-cloud-sdk.patch')
-rw-r--r-- | gsutil-use-google-cloud-sdk.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gsutil-use-google-cloud-sdk.patch b/gsutil-use-google-cloud-sdk.patch new file mode 100644 index 000000000000..89549951f765 --- /dev/null +++ b/gsutil-use-google-cloud-sdk.patch @@ -0,0 +1,54 @@ +diff --git a/gsutil.py b/gsutil.py +index 8bfed540e..cca9d4b50 100755 +--- a/gsutil.py ++++ b/gsutil.py +@@ -82,45 +82,10 @@ def temporary_directory(base): + shutil.rmtree(tmpdir) + + def ensure_gsutil(version, target, clean): +- bin_dir = os.path.join(target, 'gsutil_%s' % version) +- gsutil_bin = os.path.join(bin_dir, 'gsutil', 'gsutil') +- gsutil_flag = os.path.join(bin_dir, 'gsutil', 'install.flag') +- # We assume that if gsutil_flag exists, then we have a good version +- # of the gsutil package. +- if not clean and os.path.isfile(gsutil_flag): +- # Everything is awesome! we're all done here. +- return gsutil_bin +- +- if not os.path.exists(target): +- os.makedirs(target) +- with temporary_directory(target) as instance_dir: +- # Clean up if we're redownloading a corrupted gsutil. +- cleanup_path = os.path.join(instance_dir, 'clean') +- try: +- os.rename(bin_dir, cleanup_path) +- except (OSError, IOError): +- cleanup_path = None +- if cleanup_path: +- shutil.rmtree(cleanup_path) +- +- download_dir = os.path.join(instance_dir, 'download') +- target_zip_filename = download_gsutil(version, instance_dir) +- with zipfile.ZipFile(target_zip_filename, 'r') as target_zip: +- target_zip.extractall(download_dir) +- +- try: +- os.rename(download_dir, bin_dir) +- except (OSError, IOError): +- # Something else did this in parallel. +- pass +- # Final check that the gsutil bin exists. This should never fail. +- if not os.path.isfile(gsutil_bin): +- raise InvalidGsutilError() +- # Drop a flag file. +- with open(gsutil_flag, 'w') as f: +- f.write('This flag file is dropped by gsutil.py') +- +- return gsutil_bin ++ candidate = '/opt/google-cloud-sdk/platform/gsutil/gsutil' ++ if os.path.exists(candidate): ++ return candidate ++ raise RuntimeError('Please install google-cloud-sdk package to use gsutil') + + + def run_gsutil(force_version, fallback, target, args, clean=False): |