X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FPython%2FMkFar.py;h=b5284b478113b3e16c1542c48edb503584388f23;hp=1dba1fc4aae0ad3a7f9148fafa822e28e43c0eb1;hb=69932b41f06498e5266d0102a164041bb8f660ab;hpb=e853a9d4831ae95363ce5fdcce71cbb23aff2269 diff --git a/Tools/Python/MkFar.py b/Tools/Python/MkFar.py index 1dba1fc4aa..b5284b4781 100755 --- a/Tools/Python/MkFar.py +++ b/Tools/Python/MkFar.py @@ -6,7 +6,7 @@ from WorkspaceRoutines import * def parseMsa(msaFile, spdDir): - filelist = [] + filelist = [msaFile] msaDir = os.path.dirname(msaFile) @@ -42,8 +42,6 @@ def parseSpd(spdFile): for xmlPath in ["/PackageSurfaceArea/MsaFiles/Filename"]: for f in XmlList(spd, xmlPath): msaFile = str(os.path.join(spdDir, XmlElementData(f))) - filelist.append(msaFile) - filelist += parseMsa(msaFile, spdDir) return filelist @@ -55,6 +53,23 @@ def makeFar(filelist, farname): """ + + domImpl = xml.dom.minidom.getDOMImplementation() + man = domImpl.createDocument(None, "FrameworkArchiveManifest", None) + top_element = man.documentElement + + header = man.createElement("FarHeader") + top_element.appendChild(header) + + packList = man.createElement("FarPackageList") + top_element.appendChild(packList) + + platList = man.createElement("FarPlatformList") + top_element.appendChild(platList) + + contents = man.createElement("Contents") + top_element.appendChild(contents) + zip = zipfile.ZipFile(farname, "w") for file in args: if not os.path.exists(inWorkspace(file)): @@ -62,13 +77,24 @@ def makeFar(filelist, farname): (_, extension) = os.path.splitext(file) if extension == ".spd": filelist = parseSpd(file) + + for file in filelist: + + package = man.createElement("FarPackage") + packList.appendChild(package) + + spdfilename = man.createElement("FarFileName") + package.appendChild(spdfilename) + + spdfilename.appendChild( man.createTextNode(file) ) + elif extension == ".fpd": filelist = [file] else: filelist = [] for f in set(filelist): zip.write(inWorkspace(f), f) - zip.writestr("FrameworkArchiveManifest.xml", man) + zip.writestr("FrameworkArchiveManifest.xml", man.toprettyxml(" ")) zip.close() return