check always warns about files the manifest does not list (closes #103)
check / check (push) Failing after 2s

check now always looks under the base directory for files the manifest
does not list, hidden files and directories included, and prints one
warning per file. The result still depends only on the listed files;
--no-extra-files turns each unlisted file into a failure, and --quiet
hides the warnings but not the failures. A directory that cannot be
searched is likewise only a warning unless that flag is given.

The manifest itself is left out by file identity, as gen and freshen
do, so no name or spelling of its path or of the base gets it reported.

Model: opus-5-5
This commit is contained in:
2026-10-04 14:18:07 +00:00
parent 5c7ef94799
commit 5d596bfd55
6 changed files with 199 additions and 162 deletions
+4 -1
View File
@@ -40,7 +40,7 @@ tree by URL:
bin/mfer gen .
# Verify the files on disk against the manifest. Exits nonzero if any file
# is missing or corrupted.
# it lists is missing or corrupted; warns about files it does not list.
bin/mfer check index.mf
# Download and cryptographically verify a tree published over HTTP: mfer
@@ -251,6 +251,9 @@ are now tracked only in the [issues](https://git.eeqj.de/sneak/mfer/issues).
- `mfer check` / `mfer check .`
- verifies checksums of all files in manifest, displaying error and exiting
nonzero if any files are missing or corrupted
- warns about each file under the base directory that the manifest does not
list, hidden files included; with `--no-extra-files` each one is a failure
instead
- `mfer fetch https://example.com/stuff/`
- fetches `/stuff/index.mf` and downloads all files listed in manifest,
optionally resuming any that already exist locally, and assures