#!/usr/bin/env python '''Find InnoSetup executable''' # Copyright (c) 2006 Qualcomm # Miki Tebeka <mtebeka@qualcomm.com> from sys import platform UNINST = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ISCC = "ISCC.exe" INNO = "Inno Setup" NOT_FOUND = "error: can't find Inno Setup registery key" LOCK_KEY = "InstallLocation" if platform == "win32": from _winreg import OpenKey, QueryValueEx, EnumKey, CloseKey, \ HKEY_LOCAL_MACHINE from itertools import count from os.path import join key = OpenKey(HKEY_LOCAL_MACHINE, UNINST) next = count(0).next # Find unistall key while 1: try: keyname = EnumKey(key, next()) if INNO in keyname: break except WindowsError: # Passed last one raise SystemExit(NOT_FOUND) CloseKey(key) key = OpenKey(HKEY_LOCAL_MACHINE, UNINST + "\\" + keyname) # Get install directory value, type = QueryValueEx(key, LOCK_KEY) CloseKey(key) # Print full path to compiler print join(value, ISCC) raise SystemExit # Cygwin starts here from os import popen UNINST = UNINST.replace("\\", "/") for line in popen("/bin/regtool list /HKLM/%s" % UNINST): if INNO in line: break else: raise SystemExit(NOT_FOUND) keyname = line.strip() path = popen("/bin/regtool get '/HKLM/%s/%s/%s'" % \ (UNINST, keyname, LOCK_KEY)).read().strip() path += ISCC print popen("/bin/cygpath -au '%s'" % path).read().strip()
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 6314 | Gabi Davar |
Branch Miki Tabeka's last version of p4vaddins Integrate from: //guest/miki_tebeka/p4vaddins/... To: //guest/gabi_davar/p4vaddins/... |
||
//guest/miki_tebeka/p4vaddins/main/innoexe.py | |||||
#1 | 5280 | Miki Tebeka | Initial checkin of project |