#!/usr/bin/env bash # run_ingest.sh — fleettickets · hourly INC ingest wrapper for cron. # # Loads env from the local .env (DATABASE_URL + RUSTFS_* + GEOCODER_*) and runs the # newest-INC-CSV ingest with --apply (skip-if-unchanged + archive are built in). # # Install on the instance (ingest every 20 min, 06:00–20:40 EAT): # */20 6-20 * * * /opt/fleettickets/run_ingest.sh >> /var/log/fleettickets-inc.log 2>&1 # Ensure the crontab runs in the Africa/Nairobi timezone (CRON_TZ=Africa/Nairobi or # the host/container TZ), since the export filenames and the schedule are EAT. set -euo pipefail cd "$(dirname "$0")" # Load .env if present (KEY=VALUE lines); never commit the real .env. if [ -f .env ]; then set -a # shellcheck disable=SC1091 . ./.env set +a fi # Prefer the project venv if it exists, else the python on PATH (e.g. in-container). PY="python" [ -x ".venv/bin/python" ] && PY=".venv/bin/python" exec "$PY" import_tickets.py --from-bucket --apply