Files
martin faa65dde2f feat: Lösch-Synchronisation mit lokalem Backup und Bereinigung
Gelöschte Dateien werden beim Download ins Backup-Verzeichnis verschoben
(${LOCAL_PHOTO_DIR}-bak, ${LOCAL_DARKTABLE_DB_DIR}-bak) statt permanent
gelöscht. Upload verwendet --delete ohne Backup. Backups älter als 2 Jahre
werden automatisch bereinigt. Safeguard verhindert --delete bei leerem
Quellverzeichnis. validate_path prüft jetzt auch lokale Pfade.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 07:04:06 +02:00

36 lines
930 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
}
# Raeumt nach jedem Test auf (verhindert Lock- und Backup-Dir-Leakage zwischen Tests)
teardown() {
rm -rf "$CONFIG_DIR/sync.lock"
rm -rf "$HOME/Pictures-bak" "$HOME/.config/darktable-bak"
}
# Fuehrt ein Script mit dem Stubs-Verzeichnis vorne im PATH aus
run_with_stubs() {
run env PATH="$STUBS_DIR:$PATH" "$@"
}