contrib/windows/update_tortoisehg_libs.py @ fc97fabaf28d
Update windows contrib script for current TortoiseHg version (2.6.2). TortoiseHg 2.6.2 is packaged with Python 2.7.3 (and not 2.6.x), and now includes some of the libraries that this script previously needed to copy into place.
| author | Chris Nielsen |
|---|---|
| date | Fri, 18 Jan 2013 11:51:36 -0500 |
| parents | 1d9c439bfe54 |
| children | (none) |
# this script will update tortoisehgs python libs to include the missing libs that hg-review needs # (tested with Python 2.7.3 and Tortoisehg 2.6.2) # # Daniel Newton <djpnewton@gmail.com> # # Version 1.1 (2013/01/18) import sys import os # check python version if sys.version[:3] != '2.7': sys.exit('Need Python 2.7') # check for windows if sys.platform != 'win32': sys.exit('Script only works on win32') # list of libs to add libs = ('Cookie.py', 'htmlentitydefs.py', 'code.py', 'codeop.py', 'compiler', 'symbol.py', 'uuid.py') # find python lib path pylib_path = os.path.join(os.path.dirname(sys.executable), 'lib') # find tortoisehg libary.zip import _winreg hKey = _winreg.OpenKey (_winreg.HKEY_CURRENT_USER, r"Software\TortoiseHg") value, type = _winreg.QueryValueEx (hKey, "") # default key value hKey.Close() torthg_lib_path = os.path.join(value, "library.zip") # check validity of paths if not os.path.exists(pylib_path): sys.exit("%s does not exist" % pylib_path) if not os.path.exists(torthg_lib_path): sys.exit("%s does not exist" % torthg_lib_path) # backup tortoisehg lib import shutil shutil.copyfile(torthg_lib_path, torthg_lib_path + ".bak") # add libs to tortoisehg import zipfile zip = zipfile.ZipFile(torthg_lib_path, 'a') for lib in libs: lib_path = os.path.join(pylib_path, lib) lib_path_arcname = os.path.basename(lib_path) zip.write(lib_path, lib_path_arcname) if os.path.isdir(lib_path): child_paths = os.listdir(lib_path) for lib_path_child in child_paths: lib_path_child_arcname = os.path.join(lib_path_arcname, lib_path_child) lib_path_child = os.path.join(lib_path, lib_path_child) zip.write(lib_path_child, lib_path_child_arcname) zip.close() print 'all done'