From 156fa22b80b900c693432960f0003db8235850e3 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 29 Oct 2004 17:12:59 +0000 Subject: [PATCH] Don't just assume that the metadata files will be found git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30165 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/distrib/mac/uninstall_wxPython.py | 39 ++++++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/wxPython/distrib/mac/uninstall_wxPython.py b/wxPython/distrib/mac/uninstall_wxPython.py index 9900d930ba..4d85ac3e7a 100755 --- a/wxPython/distrib/mac/uninstall_wxPython.py +++ b/wxPython/distrib/mac/uninstall_wxPython.py @@ -42,25 +42,39 @@ COMMON_FILES = [ '/usr/local/bin/*', class AccessError(Exception): pass +class ReceiptError(Exception): + pass + class InstalledReceipt(object): def __init__(self, rcptPath): self.rcptPath = rcptPath self.rsrcPath = os.path.join(rcptPath, RSRCDIR) - self.bomFile = glob.glob(os.path.join(self.rsrcPath, "*.bom"))[0] + bf = glob.glob(os.path.join(self.rsrcPath, "*.bom")) + if bf: + self.bomFile = bf[0] + else: + print "WARNING: Unable to find %s/*.bom" % self.rsrcPath + raise ReceiptError self.findMetaData() def findMetaData(self): # TODO: Make this be able to also look at Info.plist files - infoFile = glob.glob(os.path.join(self.rsrcPath, "*.info"))[0] - self.mdata = {} - for line in open(infoFile, "r").readlines(): - line = line.strip() - if line and line[0] != '#': - ls = line.split() - self.mdata[ls[0]] = line[len(ls[0])+1:] - + infoFiles = glob.glob(os.path.join(self.rsrcPath, "*.info")) + if infoFiles: + # there should be only one + infoFile = infoFiles[0] + self.mdata = {} + for line in open(infoFile, "r").readlines(): + line = line.strip() + if line and line[0] != '#': + ls = line.split() + self.mdata[ls[0]] = line[len(ls[0])+1:] + else: + print "WARNING: Unable to find %s/*.info" % self.rsrcPath + raise ReceiptError + def getFileList(self): p = os.popen("lsbom -s %s" % self.bomFile, "r") @@ -155,8 +169,11 @@ class InstalledReceipt(object): def findInstalled(): installed = [] for name in glob.glob(os.path.join(RCPTDIR, "wxPython*")): - ir = InstalledReceipt(name) - installed.append(ir) + try: + ir = InstalledReceipt(name) + installed.append(ir) + except ReceiptError: + pass # just skip it... return installed -- 2.45.2