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
This commit is contained in:
		@@ -42,24 +42,38 @@ 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]
 | 
			
		||||
        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):
 | 
			
		||||
@@ -155,8 +169,11 @@ class InstalledReceipt(object):
 | 
			
		||||
def findInstalled():
 | 
			
		||||
    installed = []
 | 
			
		||||
    for name in glob.glob(os.path.join(RCPTDIR, "wxPython*")):
 | 
			
		||||
        try:
 | 
			
		||||
            ir = InstalledReceipt(name)
 | 
			
		||||
            installed.append(ir)
 | 
			
		||||
        except ReceiptError:
 | 
			
		||||
            pass  # just skip it...
 | 
			
		||||
 | 
			
		||||
    return installed
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user