58 lines
1.8 KiB
Bash
Executable file
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 ==="
|