in UefiTestingPkg/AuditTests/PagingAudit/Windows/PagingReportGenerator.py [0:0]
def main():
parser = argparse.ArgumentParser(description='Parse Paging information and generate HTML report')
parser.add_argument('-i', "--InputFolderPath", dest="InputFolder", help="Path to folder containing the DAT files from the UEFI shell tool (default is CWD)", default=os.getcwd())
parser.add_argument('-o', "--OutputReport", dest="OutputReport", help="Path to output html report (default is report.html)", default=os.path.join(os.getcwd(), "report.html"))
parser.add_argument('-p', "--PlatformName", dest="PlatformName", help="Name of Platform. Will show up on report", default="Test Platform")
parser.add_argument('-t', "--type", choices=['SMM', 'DXE'], dest="Type", help="SMM or DXE Paging Report", required=True)
parser.add_argument("--PlatformVersion", dest="PlatformVersion", help="Version of Platform. Will show up report", default="1.0.0")
#Turn on dubug level logging
parser.add_argument("--debug", action="store_true", dest="debug", help="turn on debug logging level for file log", default=False)
#Output debug log
parser.add_argument("-l", dest="OutputLog", help="Create an output log file: ie -l out.txt", default=None)
options = parser.parse_args()
#setup file based logging if outputReport specified
if(options.OutputLog):
if(len(options.OutputLog) < 2):
logging.critical("the output log file parameter is invalid")
return -2
else:
#setup file based logging
filelogger = logging.FileHandler(filename=options.OutputLog, mode='w')
if(options.debug):
filelogger.setLevel(logging.DEBUG)
else:
filelogger.setLevel(logging.INFO)
filelogger.setFormatter(formatter)
logging.getLogger('').addHandler(filelogger)
logging.info("Log Started: " + datetime.datetime.strftime(datetime.datetime.now(), "%A, %B %d, %Y %I:%M%p" ))
#Do parameter validation
if(options.InputFolder is None or not os.path.isdir(options.InputFolder)):
logging.critical("Invalid Input Folder Path to folder containing DAT files")
return -5
if(options.OutputReport is None):
logging.critical("No OutputReport Path")
return -6
logging.debug("Input Folder Path is: %s" % options.InputFolder)
logging.debug("Output Report is: %s" % options.OutputReport)
spt = ParsingTool(options.InputFolder, options.PlatformName, options.PlatformVersion, options.Type)
spt.Parse()
return spt.OutputHtmlReport(VERSION, options.OutputReport)