diff --git a/run-reports.sh b/run-reports.sh index 4556f32..f7cffba 100755 --- a/run-reports.sh +++ b/run-reports.sh @@ -29,25 +29,25 @@ fi # Generate reports for all domains combined echo "[INFO] Generating aggregate reports..." -python scripts/generate_reports.py hourly -python scripts/generate_reports.py daily -python scripts/generate_reports.py weekly -python scripts/generate_reports.py monthly -python scripts/generate_reports.py global +python -m scripts.generate_reports hourly +python -m scripts.generate_reports daily +python -m scripts.generate_reports weekly +python -m scripts.generate_reports monthly +python -m scripts.generate_reports global # Generate reports for each individual domain echo "[INFO] Generating per-domain reports..." -python scripts/generate_reports.py hourly --all-domains -python scripts/generate_reports.py daily --all-domains -python scripts/generate_reports.py weekly --all-domains -python scripts/generate_reports.py monthly --all-domains +python -m scripts.generate_reports hourly --all-domains +python -m scripts.generate_reports daily --all-domains +python -m scripts.generate_reports weekly --all-domains +python -m scripts.generate_reports monthly --all-domains # Generate analysis JSON echo "[INFO] Generating analysis files..." -python scripts/generate_reports.py analysis +python -m scripts.generate_reports analysis # Generate root index -python scripts/generate_reports.py index +python -m scripts.generate_reports index # Deactivate to keep cron environment clean if type deactivate >/dev/null 2>&1; then diff --git a/scripts/generate_reports.py b/scripts/generate_reports.py index 118d2dc..d3c2f8a 100644 --- a/scripts/generate_reports.py +++ b/scripts/generate_reports.py @@ -1,4 +1,5 @@ import json +import sys import sqlite3 from pathlib import Path import shutil @@ -11,6 +12,11 @@ import yaml import typer from jinja2 import Environment, FileSystemLoader +# Ensure project root is importable when running as a script (python scripts/generate_reports.py) +PROJECT_ROOT = Path(__file__).resolve().parent.parent +if str(PROJECT_ROOT) not in sys.path: + sys.path.insert(0, str(PROJECT_ROOT)) + DB_PATH = Path("database/ngxstat.db") OUTPUT_DIR = Path("output") TEMPLATE_DIR = Path("templates")