contrib/windows/update_tortoisehg_libs.py @ 66463ec963b6
Merged in abegey/hg-review/issue-93 (pull request #10)
[index] Add the owner of the cset in a td beetween id and description
author |
Christophe de Vienne <cdevienne@gmail.com> |
date |
Fri, 21 Nov 2014 19:01:07 +0100 |
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'