]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't just assume that the metadata files will be found
authorRobin Dunn <robin@alldunn.com>
Fri, 29 Oct 2004 17:12:59 +0000 (17:12 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 29 Oct 2004 17:12:59 +0000 (17:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30165 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/distrib/mac/uninstall_wxPython.py

index 9900d930ba8113fa83b452765dbea5666e1f93d5..4d85ac3e7af5cbe8de3432a4906000a2b500e7cb 100755 (executable)
@@ -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