#!/usr/bin/env bash set -euo pipefail # WetGIT dagelijkse sync — managed by Ansible # Haalt delta-updates op via SRU en commit naar wetgit/rijk. LOG_PREFIX="[$(date '+%Y-%m-%d %H:%M:%S')]" SYNC_DIR="{{ app_dir }}/sync" RIJK_REPO="$SYNC_DIR/rijk" XML_CACHE="{{ data_dir }}/xml-cache" META_REPO="$SYNC_DIR/meta" LOCK_FILE="$SYNC_DIR/.sync.lock" # Voorkom parallelle runs if [ -f "$LOCK_FILE" ]; then pid=$(cat "$LOCK_FILE") if kill -0 "$pid" 2>/dev/null; then echo "$LOG_PREFIX Sync al actief (PID $pid), overslaan." exit 0 fi fi echo $$ > "$LOCK_FILE" trap "rm -f $LOCK_FILE" EXIT # Zorg dat de repos gecloned zijn mkdir -p "$SYNC_DIR" "$XML_CACHE" if [ ! -d "$RIJK_REPO/.git" ]; then echo "$LOG_PREFIX Eerste run — clone wetgit/rijk..." git clone https://{{ forgejo_admin_user }}:{{ forgejo_api_token }}@{{ forgejo_domain }}/wetgit/rijk.git "$RIJK_REPO" cd "$RIJK_REPO" git config user.name "Coornhert" git config user.email "coornhert@wetgit.nl" else cd "$RIJK_REPO" git pull --ff-only origin main 2>/dev/null || true fi if [ ! -d "$META_REPO/.git" ]; then echo "$LOG_PREFIX Eerste run — clone wetgit/meta..." git clone https://{{ forgejo_admin_user }}:{{ forgejo_api_token }}@{{ forgejo_domain }}/wetgit/meta.git "$META_REPO" fi cd "$META_REPO" git pull --ff-only origin main 2>/dev/null || true echo "$LOG_PREFIX Start sync..." PYTHONPATH="$META_REPO/src" python3 -m wetgit.pipeline.sync \ --rijk-repo "$RIJK_REPO" \ --xml-cache "$XML_CACHE" \ --delay 0.15 echo "$LOG_PREFIX Sync voltooid."