feat: add deployment foundation and cross-device handoff
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
//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)}
|
||||
}
|
||||
Reference in New Issue
Block a user