#!/usr/bin/env bash set -e # Prevent multiple simultaneous runs by using a lock file specific to this # script. If the lock already exists, assume another instance is running and # exit gracefully. 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 # Run log import echo "[INFO] Importing logs..." python scripts/init_db.py # Deactivate to keep cron environment clean if type deactivate >/dev/null 2>&1; then deactivate fi