From b3c5d50c293b16ab1ce6e8ba25fedbfcdb493daf Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 21 Oct 2026 10:32:12 +0200 Subject: slackrepo_setup: build in .new and swap; sbshadow --yes A failed clone no longer leaves the VM without a tree: the new tree is built in $REPO.new and swapped in only when clone and subtree adds succeed. sbshadow runs with --yes, since sb-builder runs this script as a job with no stdin and the bare prompt would read EOF as "no". The old tree is deleted once shadowing succeeds and kept as $REPO.old if it fails. SBO_REPO overrides the path, as in sbshadow. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'AGENTS.md') diff --git a/AGENTS.md b/AGENTS.md index 5bf3ac3..ffe1953 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -65,8 +65,10 @@ the config with `/usr/local/bin/` rewritten to a stub dir (stub `sb-publish`, ./slackrepo_setup_SBo-danix.sh ``` -Destructive: `rm -rf`s `$REPO` on every run to start clean, then re-clones upstream. Interactive -`read` prompt inside `sbshadow` is the only confirmation (declining exits 0, run continues). +Destructive: builds a fresh tree in `$REPO.new`, swaps it in (old tree to `$REPO.old`), runs +`sbshadow --yes`, then deletes `$REPO.old`. A failed clone or subtree add leaves `$REPO` untouched; +a failed `sbshadow` keeps `$REPO.old` for a manual rollback. Non-interactive: sb-builder runs it +as a job with no stdin. `SBO_REPO` overrides the path, for trying it on a throwaway repo. ## Architecture -- cgit v1.2.3