From e6d0da3f80aac688929c41db37e7233ca7c429cb Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 11 Jul 2026 10:59:43 +0200 Subject: Add rsync_tree helper (personal subtrees excluded from --delete) Co-Authored-By: Claude Opus 4.8 --- sbo-batch-test | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sbo-batch-test b/sbo-batch-test index a29461b..f2b9c14 100755 --- a/sbo-batch-test +++ b/sbo-batch-test @@ -331,6 +331,18 @@ rsync_excludes() { done } +# rsync the SBo tree from SBO_RSYNC_URL into , excluding every personal +# subtree from transfer AND deletion. Flags match sbopkg's own rsync (files +# root:root). Returns rsync's exit status; caller decides hard-fail vs warn. +rsync_tree() { + local root="$1" + local excludes=() + mapfile -t excludes < <(rsync_excludes) + rsync -a --delete --no-owner --no-group \ + "${excludes[@]}" \ + "$SBO_RSYNC_URL/" "$root/" +} + # ============================================================================= # Package cache. Persistent, on-disk store of built packages so unchanged deps # are installed from cache instead of rebuilt. Layout mirrors the SBo tree: -- cgit v1.2.3