Exit non-zero when snapshot create --skip-errors skips anything (closes #310)
check / check (push) Successful in 12m20s

A backup under --skip-errors printed its skip errors and failed count,
then "Finished successfully.", and exited 0, so a cron wrapper could
not tell it from a complete backup. A directory the walk could not list
was not counted at all.

Each entry the walk skips is now counted as examined and failed. When
anything failed under --skip-errors, the run keeps its snapshots, runs
the post-backup prune as before, and then returns an error that the
command reports as "Backup completed, but N file(s) failed to back up".

Judgement call: without --skip-errors a file removed during the run is
still counted as failed and the exit status stays 0.

Model: opus-5-5
This commit is contained in:
2026-10-14 02:43:50 +00:00
parent 65036bba1b
commit 2510c81dcf
8 changed files with 149 additions and 24 deletions
+7
View File
@@ -115,6 +115,13 @@ on Linux), then /etc/vaultik/config.yml.`,
return
}
if errors.Is(err, vaultik.ErrFilesFailedBackup) {
log.Error("Backup completed with failed files", "error", err)
ReportErrorf("Backup completed, but %v", err)
return
}
log.Error("Snapshot creation failed", "error", err)
ReportErrorf("Snapshot creation failed: %v", err)
})