|
|
|
@ -26,7 +26,6 @@ future when a hypothetical VS2015 is released, the 2013 script will be
|
|
|
|
|
maintained, and a new 2015 script would be added.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
import _winreg
|
|
|
|
|
import hashlib
|
|
|
|
|
import json
|
|
|
|
|
import optparse
|
|
|
|
@ -39,6 +38,23 @@ import tempfile
|
|
|
|
|
import time
|
|
|
|
|
import zipfile
|
|
|
|
|
|
|
|
|
|
# winreg isn't natively available under CygWin
|
|
|
|
|
if sys.platform == "win32":
|
|
|
|
|
try:
|
|
|
|
|
import winreg
|
|
|
|
|
except ImportError:
|
|
|
|
|
import _winreg as winreg
|
|
|
|
|
elif sys.platform == "cygwin":
|
|
|
|
|
try:
|
|
|
|
|
import cygwinreg as winreg
|
|
|
|
|
except ImportError:
|
|
|
|
|
print ''
|
|
|
|
|
print 'CygWin does not natively support winreg but a replacement exists.'
|
|
|
|
|
print 'https://pypi.python.org/pypi/cygwinreg/'
|
|
|
|
|
print ''
|
|
|
|
|
print 'Try: easy_install cygwinreg'
|
|
|
|
|
print ''
|
|
|
|
|
raise
|
|
|
|
|
|
|
|
|
|
BASEDIR = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
DEPOT_TOOLS_PATH = os.path.join(BASEDIR, '..')
|
|
|
|
@ -227,10 +243,10 @@ def GetInstallerName():
|
|
|
|
|
version APIs helpfully return a maximum of 6.2 (Windows 8).
|
|
|
|
|
"""
|
|
|
|
|
key_name = r'Software\Microsoft\Windows NT\CurrentVersion'
|
|
|
|
|
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, key_name)
|
|
|
|
|
value, keytype = _winreg.QueryValueEx(key, "CurrentVersion")
|
|
|
|
|
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, key_name)
|
|
|
|
|
value, keytype = winreg.QueryValueEx(key, "CurrentVersion")
|
|
|
|
|
key.Close()
|
|
|
|
|
if keytype != _winreg.REG_SZ:
|
|
|
|
|
if keytype != winreg.REG_SZ:
|
|
|
|
|
raise Exception("Unexpected type in registry")
|
|
|
|
|
if value == '6.1':
|
|
|
|
|
# Windows 7 and Windows Server 2008 R2
|
|
|
|
|