Chromium Code Reviews| 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..7aeb36fc040a3cb25421ac4cbfb2dfaef4ed9177 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: |
| + git_rc = subprocess.call( |
| + ['git', 'remote', 'show', |
| + 'https://chrome-internal.googlesource.com/chrome/src-internal/'], |
| + shell=True, stdout=nul, stderr=nul) |
| + svn_rc = subprocess.call( |
| + ['svn', 'ls', |
| + 'svn://svn.chromium.org/chrome-internal/trunk/src-internal/'], |
| + shell=True, stdout=nul, stderr=nul) |
|
iannucci
2014/02/04 21:28:29
maybe stdin=nul as well?
Why shell=True?
scottmg
2014/02/04 21:37:04
Done.
iannucci
2014/02/04 21:43:58
#!@*#!)$!@(
|
| + return git_rc == 0 or svn_rc == 0 |
|
iannucci
2014/02/04 21:28:29
Probably prefer svn for now, since we know it's fa
scottmg
2014/02/04 21:37:04
Done.
|
| + |
| + |
| 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. |