6a6ce52cf9
- Race Condition behoben: Pre-Sync wird vollstaendig abgewartet bevor Darktable startet - Post-Sync nach Schliessen von Darktable eingefuehrt (bisher fehlend) - .env aus festem Pfad ~/.config/darktable-sync/.env geladen (nicht mehr relativ) - Server-Erreichbarkeit per SSH statt ping (Firewall-sicher) - Darktable-Versionscheck (Major.Minor) vor Download mit Abbruch bei Konflikt - DB-Backup vor jedem Download (library.db.bak, data.db.bak) - sync_pending-Marker bei Offline/Fehler, Hinweis beim naechsten Start - darktable.active-Marker auf Server fuer Concurrent-Erkennung - Lock-Dateien vom Sync ausgeschlossen - systemd-Timer entfernt, Service bleibt als manueller Trigger - Gemeinsame Hilfsfunktionen in darktable_common.sh extrahiert - 20 BATS-Tests mit vollstaendigem Stub-System ohne GUI-Dialoge Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
30 lines
731 B
Bash
30 lines
731 B
Bash
# Gemeinsames Test-Setup
|
|
|
|
STUBS_DIR="$BATS_TEST_DIRNAME/stubs"
|
|
|
|
# Temporaere HOME anlegen
|
|
export HOME="$BATS_TMPDIR/home"
|
|
mkdir -p "$HOME/.config/darktable-sync"
|
|
mkdir -p "$HOME/.config/darktable"
|
|
mkdir -p "$HOME/.local/bin"
|
|
export CONFIG_DIR="$HOME/.config/darktable-sync"
|
|
|
|
create_valid_env() {
|
|
cat > "$CONFIG_DIR/.env" <<EOF
|
|
SERVER_USER=testuser
|
|
SERVER_SSH_PORT=22
|
|
SERVER_IP=192.168.1.100
|
|
SERVER_DB_DIR=/remote/db
|
|
SERVER_PHOTO_DIR=/remote/photos
|
|
LOCAL_DARKTABLE_DB_DIR=$HOME/.config/darktable
|
|
LOCAL_PHOTO_DIR=$HOME/Pictures
|
|
DARKTABLE_BIN=darktable
|
|
SYNC_BIN=$HOME/.local/bin/darktable_sync.sh
|
|
EOF
|
|
}
|
|
|
|
# Fuehrt ein Script mit dem Stubs-Verzeichnis vorne im PATH aus
|
|
run_with_stubs() {
|
|
run env PATH="$STUBS_DIR:$PATH" "$@"
|
|
}
|