Add hardering
This commit is contained in:
41
securecheck/summary_utils.py
Normal file
41
securecheck/summary_utils.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
from typing import Sequence
|
||||
|
||||
from .models import TaskResult
|
||||
|
||||
ANSI_RE = re.compile(r"\x1b\[[0-?]*[ -/]*[@-~]")
|
||||
SCORE_PREFIXES = ("Score Lynis", "Hardening index")
|
||||
RECOMMENDATION_PREFIXES = (
|
||||
"Modifications recommandées",
|
||||
"•",
|
||||
)
|
||||
|
||||
|
||||
def clean_text(text: str) -> str:
|
||||
return ANSI_RE.sub("", text)
|
||||
|
||||
|
||||
def collect_details(results: Sequence[TaskResult]) -> tuple[list[str], list[str]]:
|
||||
score_lines: list[str] = []
|
||||
recommendation_lines: list[str] = []
|
||||
seen_scores: set[str] = set()
|
||||
seen_recommendations: set[str] = set()
|
||||
|
||||
for result in results:
|
||||
for detail in result.details:
|
||||
line = clean_text(detail).strip()
|
||||
if not line:
|
||||
continue
|
||||
|
||||
if any(line.startswith(prefix) for prefix in SCORE_PREFIXES) and line not in seen_scores:
|
||||
seen_scores.add(line)
|
||||
score_lines.append(line)
|
||||
continue
|
||||
|
||||
if any(line.startswith(prefix) for prefix in RECOMMENDATION_PREFIXES) and line not in seen_recommendations:
|
||||
seen_recommendations.add(line)
|
||||
recommendation_lines.append(line)
|
||||
|
||||
return score_lines, recommendation_lines
|
||||
Reference in New Issue
Block a user