Index: win_toolchain/get_toolchain_if_necessary.py |
diff --git a/win_toolchain/get_toolchain_if_necessary.py b/win_toolchain/get_toolchain_if_necessary.py |
index 654d5659c98fe9907ab65c542b8df6c2822bfba2..446a801634d19379751f9f781819fc468b778bd3 100755 |
--- a/win_toolchain/get_toolchain_if_necessary.py |
+++ b/win_toolchain/get_toolchain_if_necessary.py |
@@ -114,6 +114,20 @@ def SaveTimestampsAndHash(root, sha1): |
json.dump(timestamps_data, f) |
+def HaveSrcInternalAccess(): |
+ """Checks whether access to src-internal is available.""" |
+ with open(os.devnull, 'w') as nul: |
+ if subprocess.call( |
+ ['svn', 'ls', |
+ 'svn://svn.chromium.org/chrome-internal/trunk/src-internal/'], |
+ shell=True, stdin=nul, stdout=nul, stderr=nul) == 0: |
+ return True |
+ return subprocess.call( |
+ ['git', 'remote', 'show', |
+ 'https://chrome-internal.googlesource.com/chrome/src-internal/'], |
+ shell=True, stdin=nul, stdout=nul, stderr=nul) == 0 |
+ |
+ |
def main(): |
if not sys.platform.startswith(('cygwin', 'win32')): |
return 0 |
@@ -125,9 +139,6 @@ def main(): |
# Move to depot_tools\win_toolchain where we'll store our files, and where |
# the downloader script is. |
os.chdir(os.path.normpath(os.path.join(BASEDIR))) |
- # TODO(scottmg): http://crbug.com/323300 Attempt to locate a src-internal |
- # pull and use that as a signal to install Pro also. |
- should_get_pro = os.path.isfile(os.path.join(BASEDIR, '.vspro')) |
toolchain_dir = '.' |
target_dir = os.path.normpath(os.path.join(toolchain_dir, 'vs2013_files')) |
@@ -143,6 +154,8 @@ def main(): |
# based on timestamps to make that case fast. |
current_hash = CalculateHash(target_dir) |
if current_hash not in desired_hashes: |
+ should_get_pro = (os.path.isfile(os.path.join(BASEDIR, '.vspro')) or |
+ HaveSrcInternalAccess()) |
print('Windows toolchain out of date or doesn\'t exist, updating (%s)...' % |
('Pro' if should_get_pro else 'Express')) |
# This stays resident and will make the rmdir below fail. |