kennzeichen-seite/scripts/sync.sh
2026-05-20 20:47:07 +02:00

58 lines
1.8 KiB
Bash
Executable file

#!/usr/bin/env bash
# sync.sh — Kennzeichen-Daten aus ~/plates aktualisieren
#
# Ablauf:
# 1. git pull im plates-Repo
# 2. Alle Kennzeichen in PocketBase upserten (neue Records, geänderte Records)
#
# Verwendung:
# bash ~/kennzeichen/scripts/sync.sh
#
# Für neue Länder zusätzlich nötig:
# - Land in COUNTRY_MAP in import_all.py eintragen
# - Land in COUNTRY_LABELS + COUNTRY_FLAGS in frontend/lib/pb.ts eintragen
# - Docker rebuild: docker compose -f ~/kennzeichen/docker-compose.yml build nextjs
# && docker compose -f ~/kennzeichen/docker-compose.yml up -d nextjs
set -e
PLATES_DIR="${PLATES_DIR:-$HOME/plates}"
KENNZEICHEN_DIR="${KENNZEICHEN_DIR:-$HOME/kennzeichen}"
PB_URL="${PB_URL:-http://localhost:4444}"
PB_EMAIL="${PB_EMAIL:-}"
PB_PASSWORD="${PB_PASSWORD:-}"
# Credentials aus .env laden falls vorhanden
[ -f "$KENNZEICHEN_DIR/.env" ] && source "$KENNZEICHEN_DIR/.env"
if [ -z "$PB_EMAIL" ] || [ -z "$PB_PASSWORD" ]; then
echo "Fehler: PB_EMAIL und PB_PASSWORD müssen gesetzt sein (siehe .env.example)"
exit 1
fi
echo "=== Kennzeichen-Sync $(date '+%Y-%m-%d %H:%M') ==="
# 1. Repo aktualisieren
echo "→ git pull..."
git -C "$PLATES_DIR" pull --ff-only
# 2. Kennzeichen importieren (upsert, kein Schema-Reset)
echo "→ Kennzeichen importieren..."
python3 "$KENNZEICHEN_DIR/scripts/import_all.py" \
--pb-url "$PB_URL" \
--pb-email "$PB_EMAIL" \
--pb-password "$PB_PASSWORD" \
--repo-path "$PLATES_DIR" \
--db-path "$KENNZEICHEN_DIR/data.db" \
--skip-schema
# 3. Diplomatenkennzeichen synchronisieren (upsert)
echo "→ Diplomatenkennzeichen synchronisieren..."
python3 "$KENNZEICHEN_DIR/scripts/fix_schema.py" \
--pb-url "$PB_URL" \
--pb-email "$PB_EMAIL" \
--pb-password "$PB_PASSWORD" \
--repo-path "$PLATES_DIR" \
--only diplo
echo "=== Fertig ==="