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:
Robin Dunn 2004-10-29 17:12:59 +00:00
parent 75a937411c
commit 156fa22b80

View File

@ -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