23 lines
509 B
Go
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)}
|
|
}
|