fix: Trockenlauf-Zählwerte korrigieren und Fehlerbehandlung verbessern

- count_changes_in_rsync_output: Regulärer Ausdruck für gelöschte Dateien korrigiert (wildcard-Escaping)
- Doppel-Checks entfernt, Fehlerausgaben standardisiert
- Dry-Run-Output-Parsing zu gemeinsamen Funktionen verschoben
- CLAUDE.md mit präziseren Anforderungen an Fehlerbehandlung aktualisiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-21 17:28:11 +02:00
parent 98722536f1
commit 9f401e48e9
3 changed files with 51 additions and 23 deletions
+10 -10
View File
@@ -35,8 +35,8 @@ done
count_synced_files() {
local log_file="$1" direction="$2" count=0
case "$direction" in
up) count=$(grep -cE '^>f|^cd' "$log_file" 2>/dev/null) || count=0 ;;
down) count=$(grep -cE '^<f|^cd' "$log_file" 2>/dev/null) || count=0 ;;
up) count=$(grep -cE '^<f|^cd' "$log_file" 2>/dev/null) || count=0 ;;
down) count=$(grep -cE '^>f|^cd' "$log_file" 2>/dev/null) || count=0 ;;
esac
echo "$count"
}
@@ -300,18 +300,18 @@ if [ "$DRY_RUN" = true ]; then
upload_log=$(cat "$UPLOAD_LOG_DB" "$UPLOAD_LOG_PHOTOS" 2>/dev/null || true)
download_log=$(cat "$DOWNLOAD_LOG_DB" "$DOWNLOAD_LOG_PHOTOS" 2>/dev/null || true)
UP_NEW=$( echo "$upload_log" | grep -cE '^>f[+]{9}' || echo 0)
UP_UPD=$( echo "$upload_log" | grep -E '^>f' | grep -cvE '^>f[+]{9}' || echo 0)
UP_DEL=$( echo "$upload_log" | grep -cE '^\*deleting' || echo 0)
DN_NEW=$( echo "$download_log" | grep -cE '^<f[+]{9}' || echo 0)
DN_UPD=$( echo "$download_log" | grep -E '^<f' | grep -cvE '^<f[+]{9}' || echo 0)
DN_DEL=$( echo "$download_log" | grep -cE '^\*deleting' || echo 0)
UP_NEW=$( echo "$upload_log" | grep -cE '^<f[+]{9}' || true)
UP_UPD=$( echo "$upload_log" | grep -E '^<f' | grep -cvE '^<f[+]{9}' || true)
UP_DEL=$( echo "$upload_log" | grep -cE '^\*deleting' || true)
DN_NEW=$( echo "$download_log" | grep -cE '^>f[+]{9}' || true)
DN_UPD=$( echo "$download_log" | grep -E '^>f' | grep -cvE '^>f[+]{9}' || true)
DN_DEL=$( echo "$download_log" | grep -cE '^\*deleting' || true)
log_step "Trockenlauf-Ergebnis"
log " Upload: $UP_NEW neu | $UP_UPD aktualisiert | $UP_DEL gelöscht (Server)"
log " Upload: $UP_NEW neu | $UP_UPD aktualisiert | $UP_DEL gelöscht"
log " Download: $DN_NEW neu | $DN_UPD aktualisiert | $DN_DEL gelöscht → Backup: $BACKUP_PHOTO_DIR"
if [ "$((TOTAL_SENT + TOTAL_RECEIVED))" -gt 0 ]; then
if [ "$((UP_NEW + UP_UPD + UP_DEL + DN_NEW + DN_UPD + DN_DEL))" -gt 0 ]; then
if ask_user "Details" "Details der zu übertragenden Dateien anzeigen?"; then
format_rsync_details "$UPLOAD_LOG_DB" "Upload" "up"
format_rsync_details "$UPLOAD_LOG_PHOTOS" "Upload" "up"