Support optional BOTO specification with --no_auth.
This prevents --no_auth from always clearing BOTO_CONFIG, since there
are times when a BOTO is needed for other things than just auth info
(e.g. proxy settings).
BUG=443523
R=hinoka@chromium.org, szager@chromium.org
Review URL: https://codereview.chromium.org/844373002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293652 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/download_from_google_storage.py b/download_from_google_storage.py
index 09be339..0f53ea4 100755
--- a/download_from_google_storage.py
+++ b/download_from_google_storage.py
@@ -384,7 +384,18 @@
# Set the boto file to /dev/null if we don't need auth.
if options.no_auth:
- options.boto = os.devnull
+ if (set(('http_proxy', 'https_proxy')).intersection(
+ env.lower() for env in os.environ) and
+ 'NO_AUTH_BOTO_CONFIG' not in os.environ):
+ print >> sys.stderr, ('NOTICE: You have PROXY values set in your '
+ 'environment, but gsutil in depot_tools does not '
+ '(yet) obey them.')
+ print >> sys.stderr, ('Also, --no_auth prevents the normal BOTO_CONFIG '
+ 'environment variable from being used.')
+ print >> sys.stderr, ('To use a proxy in this situation, please supply '
+ 'those settings in a .boto file pointed to by '
+ 'the NO_AUTH_BOTO_CONFIG environment var.')
+ options.boto = os.environ.get('NO_AUTH_BOTO_CONFIG', os.devnull)
# Make sure gsutil exists where we expect it to.
if os.path.exists(GSUTIL_DEFAULT_PATH):