17 lines
327 B
Go
17 lines
327 B
Go
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)
|
|
}
|