contrib/windows/update_tortoisehg_libs.py @ 16e0bcd4f854
Switch to the new hg spanset API This api was introduced in 3.2, and the indexation is not supported anymore (probably since 3.4) Patch provided by David Douard (see https://bitbucket.org/sjl/hg-review/pull-requests/8/better-handling-of-obsolescence-markers/diff#comment-8174971)
| author | Christophe de Vienne <christophe@cdevienne.info> |
|---|---|
| date | Fri, 19 Aug 2016 18:21:28 +0200 |
| parents | 1d9c439bfe54 |
| children | fc97fabaf28d |
# this script will update tortoisehgs python libs to include the missing libs that hg-review needs # (tested with Python 2.6 and Tortoisehg 1.1) # # Daniel Newton <djpnewton@gmail.com> # # Version 1.0 (2010/07/28) import sys import os # check python version if sys.version[:3] != '2.6': sys.exit('Need Python 2.6') # check for windows if sys.platform != 'win32': sys.exit('Script only works on win32') # list of libs to add libs = ('Cookie.py', 'decimal.py', 'htmlentitydefs.py', 'code.py', 'codeop.py', 'compiler', 'numbers.py', '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'