39 lines
1.1 KiB
Bash
Executable file
39 lines
1.1 KiB
Bash
Executable file
#!/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
|