50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
# usage: python process_json_reports.py report.json template.mustache outfile.md project_name
|
|
import chevron
|
|
import sys
|
|
import datetime
|
|
import json
|
|
import process_erc_json
|
|
import process_drc_json
|
|
from pprint import pprint
|
|
|
|
|
|
def load_report(filename : str, project_name : str) -> dict:
|
|
out_dict : dict = {}
|
|
with open(filename, "r") as js:
|
|
if ("erc" in filename.lower()):
|
|
out_dict = process_erc_json.process_report(js.read())
|
|
if ("drc" in filename.lower()):
|
|
out_dict = process_drc_json.process_report(js.read())
|
|
|
|
out_dict.setdefault(
|
|
"time",
|
|
str(datetime.datetime.now().time())
|
|
)
|
|
|
|
out_dict.setdefault(
|
|
"date",
|
|
str(datetime.datetime.now().date().strftime("%d-%m-%Y"))
|
|
)
|
|
|
|
out_dict.setdefault(
|
|
"project_name",
|
|
project_name
|
|
)
|
|
|
|
out_dict.setdefault(
|
|
"has_violations",
|
|
True if out_dict["total_warns"] + out_dict["total_errors"] else None
|
|
)
|
|
|
|
return out_dict
|
|
|
|
def main():
|
|
report_hash = load_report(sys.argv[1], sys.argv[4])
|
|
# pprint(report_hash)
|
|
with open(sys.argv[2], "r") as txt:
|
|
out = chevron.render(txt.read(), report_hash)
|
|
with open(sys.argv[3], "w") as md:
|
|
md.write(out)
|
|
|
|
if __name__ == "__main__":
|
|
main() |