audk/Tools/Python/ListWorkspace.py

48 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python
"""List the contents of the Framework Database to the screen in a readble
form."""
import os, sys, getopt, string, xml.dom.minidom, zipfile, md5
from XmlRoutines import *
from WorkspaceRoutines import *
def openDatabase(f):
print "Dumping the contents of %s workspace database file." % f
db = xml.dom.minidom.parse(inWorkspace(f))
return db
def showSpds(db):
print "--------\nPackages\n--------"
for spdFile in XmlList(db, "/FrameworkDatabase/PackageList/Filename"):
spdFileName = XmlElementData(spdFile)
spd = xml.dom.minidom.parse(inWorkspace(spdFileName))
spdName = XmlElement(spd, "/PackageSurfaceArea/SpdHeader/PackageName")
print " %-24s %-10s" % (spdName, spdFileName)
def showFpds(db):
print "--------\nPlatforms\n--------"
for fpdFile in XmlList(db, "/FrameworkDatabase/PlatformList/Filename"):
fpdFileName = XmlElementData(fpdFile)
fpd = xml.dom.minidom.parse(inWorkspace(fpdFileName))
fpdName = XmlElement(fpd, "/PlatformSurfaceArea/PlatformHeader/PlatformName")
print " %-24s %-10s" % (fpdName, fpdFileName)
# This acts like the main() function for the script, unless it is 'import'ed
# into another script.
if __name__ == '__main__':
db = openDatabase("Tools/Conf/FrameworkDatabase.db")
showSpds(db)
showFpds(db)