Corrections to the far manifest.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2105 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
bbahnsen 2006-12-16 08:28:47 +00:00
parent 69932b41f0
commit d32aaa956e
1 changed files with 36 additions and 27 deletions

View File

@ -39,59 +39,68 @@ def parseSpd(spdFile):
for f in XmlList(spd, xmlPath): for f in XmlList(spd, xmlPath):
filelist.append(str(os.path.join(spdDir, XmlElementData(f)))) filelist.append(str(os.path.join(spdDir, XmlElementData(f))))
for xmlPath in ["/PackageSurfaceArea/MsaFiles/Filename"]: for f in XmlList(spd, "/PackageSurfaceArea/MsaFiles/Filename"):
for f in XmlList(spd, xmlPath): msaFile = str(os.path.join(spdDir, XmlElementData(f)))
msaFile = str(os.path.join(spdDir, XmlElementData(f))) filelist += parseMsa(msaFile, spdDir)
filelist += parseMsa(msaFile, spdDir)
return filelist return filelist
def makeFar(filelist, farname): def makeFar(filelist, farname):
man = \
"""<?xml version="1.0" encoding="UTF-8"?>
<FrameworkArchiveManifest>
</FrameworkArchiveManifest>
"""
domImpl = xml.dom.minidom.getDOMImplementation() domImpl = xml.dom.minidom.getDOMImplementation()
man = domImpl.createDocument(None, "FrameworkArchiveManifest", None) man = domImpl.createDocument(None, "FrameworkArchiveManifest", None)
top_element = man.documentElement top_element = man.documentElement
header = man.createElement("FarHeader") header = man.createElement("FarHeader")
top_element.appendChild(header) top_element.appendChild(header)
packList = man.createElement("FarPackageList") packList = man.createElement("FarPackageList")
top_element.appendChild(packList) top_element.appendChild(packList)
platList = man.createElement("FarPlatformList") platList = man.createElement("FarPlatformList")
top_element.appendChild(platList) top_element.appendChild(platList)
contents = man.createElement("Contents") contents = man.createElement("Contents")
top_element.appendChild(contents) top_element.appendChild(contents)
zip = zipfile.ZipFile(farname, "w") zip = zipfile.ZipFile(farname, "w")
for file in args: for infile in filelist:
if not os.path.exists(inWorkspace(file)): if not os.path.exists(inWorkspace(infile)):
print "Skipping non-existent file '%s'." % file print "Skipping non-existent file '%s'." % infile
(_, extension) = os.path.splitext(file) (_, extension) = os.path.splitext(infile)
if extension == ".spd": if extension == ".spd":
filelist = parseSpd(file) filelist = parseSpd(infile)
for file in filelist: package = man.createElement("FarPackage")
packList.appendChild(package)
package = man.createElement("FarPackage")
packList.appendChild(package)
spdfilename = man.createElement("FarFileName") spdfilename = man.createElement("FarFilename")
package.appendChild(spdfilename) package.appendChild(spdfilename)
spdfilename.appendChild( man.createTextNode(file) ) spdfilename.appendChild( man.createTextNode(infile) )
for spdfile in filelist:
content = man.createElement("FarFilename")
content.appendChild( man.createTextNode(spdfile))
contents.appendChild(content)
elif extension == ".fpd": elif extension == ".fpd":
filelist = [file] filelist = [infile]
platform = man.createElement("FarPlatform")
platList.appendChild(platform)
fpdfilename = man.createElement("FarFilename")
platform.appendChild(fpdfilename)
fpdfilename.appendChild( man.createTextNode(infile) )
else: else:
filelist = [] filelist = []
content = man.createElement("FarFilename")
content.appendChild( man.createTextNode(infile))
contents.appendChild(content)
for f in set(filelist): for f in set(filelist):
zip.write(inWorkspace(f), f) zip.write(inWorkspace(f), f)
zip.writestr("FrameworkArchiveManifest.xml", man.toprettyxml(" ")) zip.writestr("FrameworkArchiveManifest.xml", man.toprettyxml(" "))