Doh, I found out there's a plistlib module, much easier than parsing it myself

This commit is contained in:
rdb 2009-07-23 12:55:09 +00:00
parent 0ed8c85278
commit 62ba361522

View File

@ -13,7 +13,7 @@
########################################################################
import sys,os,platform,time,stat,string,re,getopt,fnmatch,threading,Queue,signal,shutil
from xml.dom.minidom import parse
if (sys.platform == "darwin"): import plistlib
from makepandacore import *
from installpanda import *
@ -939,23 +939,8 @@ def CompileBundle(target, inputs, opts):
# Now link the object files to form the bundle.
if (plist == None): exit("One plist file must be used when creating a bundle!")
bundleName = None
try:
plistXML = parse(plist)
plistXML = plistXML.getElementsByTagName("plist")[0]
plistXML = plistXML.getElementsByTagName("dict")[0]
for i, node in enumerate(plistXML.childNodes):
if (node.nodeName.lower() == "key" and \
node.firstChild.nodeValue.strip() == "CFBundleExecutable"):
# Find the next <string> element.
for j in range(j+1, len(plistXML.childNodes)):
if (node.nodeName.lower() == "string"):
bundleName = node.firstChild.nodeValue.strip()
break
except:
exit("Error parsing plist file %s" % plist)
bundleName = plistlib.readPlist(plist)["CFBundleExecutable"]
if (not bundleName): exit("Couldn't find key 'CFBundleExecutable' in plist file %s" % plist)
oscmd("rm -rf %s" % target)
oscmd("mkdir -p %s/Contents/MacOS/" % target)
CompileLink("%s/Contents/MacOS/%s" % (target, bundleName), objects, opts + ["BUNDLE"])