#!/usr/bin/env python3 from datetime import datetime import jinja2 def generateHtmlReport(data): today = datetime.now().isoformat()[0:10].replace("-", "_") html = _getHeader() html += "" \ f"

Reports of {today}

" dataJinja2 = dict() dataJinja2['plugins'] = list() # Env jinja2 env = jinja2.Environment( loader=jinja2.PackageLoader("reports"), autoescape=jinja2.select_autoescape() ) # print(env.list_templates()) tmplIndex = env.get_template("index.html.j2") body = str() for plugin in data['system']: print(plugin) dataJinja2['plugins'].append(f"{plugin}.html.j2") dataJinja2['year'] = '2023' rdr = tmplIndex.render(data=dataJinja2) # For sysctl #for entry in data['sysctl']: # body += f"

Sysctl

" # # For file # body += f"

File

" #for f in data['sysctl']['file']: # body += f"

{data['sysctl']['file']['filename']}

" # for vul in data['sysctl']['file']['sysctl']: # #print(data['sysctl']['file']['sysctl'][vul]) # body += f"
{vul}
" # body += f"

" # body += f"Results:
" #for result in data['sysctl']['file']['sysctl'][vul]: # print(result) # body += f"Line: {result['lineNumber']}
" # body += f"Line: {result['line']}
" # body += f"Level: {result['level']}
" # body += f"Description: {result['description']}

" #body += f"

" html += body #print(body) html += "" with open(f"reports/reports_{today}.html", "w") as f: f.write(rdr) def _getHeader() -> str: header = "" \ "" \ "" \ "" \ return header