repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

commit
f8ad8c5
parent
6819e95
author
Eric Bower
date
2025-12-18 20:23:21 -0500 EST
fix(rsync): delete largest path first
1 files changed,  +8, -0
M pkg/send/protocols/rsync/rsync.go
+8, -0
 1@@ -153,6 +153,14 @@ func (h *handler) Remove(willReceive []*rsyncutils.ReceiverFile) error {
 2 		}
 3 	}
 4 
 5+	// Sort by path depth descending so children are deleted before parents.
 6+	// This ensures directories are empty before we try to remove them.
 7+	slices.SortFunc(toDelete, func(a, b string) int {
 8+		depthA := strings.Count(a, "/")
 9+		depthB := strings.Count(b, "/")
10+		return depthB - depthA
11+	})
12+
13 	var errs []error
14 
15 	for _, file := range toDelete {