28 lines
970 B
Bash
28 lines
970 B
Bash
|
|
#!/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 at :15, 07:00–19:00 EAT):
|
|||
|
|
# 15 7-19 * * * /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
|