From d1c65a06d5fab1850091b20d96317f5f4b99f605 Mon Sep 17 00:00:00 2001 From: mikael-lovqvists-claude-agent Date: Sat, 7 Mar 2026 01:32:33 +0000 Subject: [PATCH] Replace rm -rf PEND with mkdir -p, use --delete on both rsyncs --- lib/commands/run.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/commands/run.js b/lib/commands/run.js index 41e0d16..b497899 100644 --- a/lib/commands/run.js +++ b/lib/commands/run.js @@ -1,7 +1,7 @@ /** * run command — full backup run. */ -import { rm, mkdir, rename, writeFile } from 'fs/promises'; +import { mkdir, rename, writeFile } from 'fs/promises'; import { join } from 'path'; import { run as spawn, capture } from '../spawn.js'; import { parseItemize } from '../itemize.js'; @@ -22,20 +22,18 @@ export async function runCommand(config) { // TODO: detect and recover from partially-committed previous run - // ── Phase 1: Clear PEND ───────────────────────────────────── + // ── Phase 1: Ensure PEND exists ───────────────────────────── await setPhase(deltas, state, PHASES.CLEARING_PEND, dry); - console.log('\n── Clear PEND ──'); if (!dry) { - await rm(pend, { recursive: true, force: true }); await mkdir(pend, { recursive: true }); } else { - console.log(`[dry-run] rm -rf ${pend} && mkdir -p ${pend}`); + console.log(`[dry-run] mkdir -p ${pend}`); } - // ── Phase 2: rsync PREV → PEND (local seed) ───────────────── + // ── Phase 2: rsync PREV → PEND (local seed, with delete) ──── await setPhase(deltas, state, PHASES.RSYNC_LOCAL, dry); console.log('\n── rsync PREV → PEND (local seed) ──'); - await spawn('rsync', ['-aP', trailingSlash(prev), trailingSlash(pend)], { dryRun: dry }); + await spawn('rsync', ['-aP', '--delete', trailingSlash(prev), trailingSlash(pend)], { dryRun: dry }); // ── Phase 3: rsync SOURCE → PEND, capture change list ─────── await setPhase(deltas, state, PHASES.RSYNC_REMOTE, dry);