//go:build linux package collect import "syscall" type FSUsage struct { Path string `json:"path"` Total uint64 `json:"total"` Free uint64 `json:"free"` } func ReadFS(path string) (FSUsage, error) { var st syscall.Statfs_t if err := syscall.Statfs(path, &st); err != nil { return FSUsage{}, err } bs := uint64(st.Bsize) return FSUsage{Path: path, Total: st.Blocks * bs, Free: st.Bavail * bs}, nil }