package main import "syscall" func diskUsage(path string) float64 { var stat syscall.Statfs_t if err := syscall.Statfs(path, &stat); err != nil { return 0 } total := stat.Blocks * uint64(stat.Bsize) free := stat.Bavail * uint64(stat.Bsize) if total == 0 { return 0 } return float64(total-free) / float64(total) }