#!/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['title'] = 'Report check system' 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") if 'postfix' in dataJinja2['plugins']: pass if 'sysctl' in data['system']: dataJinja2['sysctl'] = dict() dataJinja2['sysctl']['file'] = dict() dataJinja2['sysctl']['file']['filename'] = data['system']['sysctl']['file']['filename'] dataJinja2['sysctl']['file']['sysctl'] = data['system']['sysctl']['file']['sysctl'] for sysctl in data['system']['sysctl']['file']: pass #print(data['system']['sysctl']['file'][sysctl]) #for entry in data['system']['sysctl']['file']['sysctl']: # print(entry) # print(data['system']['sysctl']['file']['sysctl'][entry]) print(dataJinja2) 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"

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