Files
clawgo/pkg/tools/system_disk_unix.go

23 lines
504 B
Go

//go:build !windows
package tools
import "fmt"
import "syscall"
func diskUsageRoot() string {
var stat syscall.Statfs_t
if err := syscall.Statfs("/", &stat); err != nil {
return ""
}
bsize := uint64(stat.Bsize)
total := stat.Blocks * bsize
free := stat.Bfree * bsize
used := total - free
if total == 0 {
return ""
}
return fmt.Sprintf("Disk (/): Used %.2f GB / Total %.2f GB (%.2f%%)\n",
float64(used)/1024/1024/1024, float64(total)/1024/1024/1024, float64(used)/float64(total)*100)
}