Make scan paths required operands; add -x/--one-file-system
All checks were successful
check / check (push) Successful in 4s

scan now takes one or more PATH operands (directories or regular
files) via cobra flags instead of the -root flag with its /srv
default; invoking scan with no operand is a usage error and a
nonexistent operand is fatal. Filesystem boundaries are crossed by
default; the new -x/--one-file-system flag (GNU du/rsync convention)
stops the walk at each operand's filesystem, implemented by comparing
lstat device IDs with build-tagged helpers for darwin's int32 Dev.
Verified against a real mounted disk image: default crosses, -x does
not, --one-file-system is identical to -x.
This commit is contained in:
2026-07-23 08:55:17 +07:00
parent 3391207f8d
commit 4b1c3cbf70
7 changed files with 262 additions and 84 deletions

10
scan_dev_other.go Normal file
View File

@@ -0,0 +1,10 @@
//go:build !darwin
package main
import "syscall"
// statDev returns the filesystem device ID of st.
func statDev(st *syscall.Stat_t) uint64 {
return st.Dev
}