#!/usr/bin/env bash set -e # Prevent concurrent executions of this script. LOCK_FILE="/tmp/$(basename "$0").lock" if [ -e "$LOCK_FILE" ]; then echo "[WARN] $(basename "$0") is already running (lock file present)." >&2 exit 0 fi touch "$LOCK_FILE" trap 'rm -f "$LOCK_FILE"' EXIT # Ensure virtual environment exists if [ ! -d ".venv" ]; then echo "[INFO] Creating virtual environment..." python3 -m venv .venv source .venv/bin/activate echo "[INFO] Installing dependencies..." pip install --upgrade pip if [ -f requirements.txt ]; then pip install -r requirements.txt else echo "[WARN] requirements.txt not found, skipping." fi else echo "[INFO] Activating virtual environment..." source .venv/bin/activate 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 # 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 # Generate analysis JSON echo "[INFO] Generating analysis files..." python scripts/generate_reports.py analysis # Generate root index python scripts/generate_reports.py index # Deactivate to keep cron environment clean if type deactivate >/dev/null 2>&1; then deactivate fi