diff --git a/lib/commands/run.js b/lib/commands/run.js index b497899..d225036 100644 --- a/lib/commands/run.js +++ b/lib/commands/run.js @@ -1,7 +1,7 @@ /** * run command — full backup run. */ -import { mkdir, rename, writeFile } from 'fs/promises'; +import { mkdir, writeFile } from 'fs/promises'; import { join } from 'path'; import { run as spawn, capture } from '../spawn.js'; import { parseItemize } from '../itemize.js'; @@ -132,14 +132,7 @@ export async function runCommand(config) { // ── Phase 6: Promote PEND → PREV ──────────────────────────── await setPhase(deltas, state, PHASES.PROMOTING, dry); console.log('\n── Promote PEND → PREV ──'); - - if (!dry) { - await rm(prev, { recursive: true, force: true }); - await rename(pend, prev); - console.log(` ${pend} → ${prev}`); - } else { - console.log(`[dry-run] rm -rf ${prev} && mv ${pend} ${prev}`); - } + await spawn('rsync', ['-aP', '--delete', trailingSlash(pend), trailingSlash(prev)], { dryRun: dry }); // ── Done ───────────────────────────────────────────────────── state.last_complete = seq;