Files
server-deploy/internal/preflight/collect_linux.go
T

23 lines
509 B
Go

//go:build linux
package preflight
import (
"os"
"syscall"
"server-deploy/internal/inspect"
)
func Collect() Report {
return Probe(inspect.Collect(), os.DirFS("/"), os.Geteuid(), diskAvailable("/var/lib"))
}
func diskAvailable(path string) Disk {
var stat syscall.Statfs_t
if syscall.Statfs(path, &stat) != nil || stat.Bsize <= 0 || stat.Bavail > ^uint64(0)/uint64(stat.Bsize) {
return Disk{State: "unknown"}
}
return Disk{State: "observed", AvailableBytes: stat.Bavail * uint64(stat.Bsize)}
}