//go:build !windows package logic import ( "math" "os" "syscall" "easygoadmin/api/v1" ) // diskUsage 读取工作目录所在磁盘分区容量(Unix) func diskUsage() []v1.ServerDiskInfo { wd, err := os.Getwd() if err != nil { return nil } var st syscall.Statfs_t if err = syscall.Statfs(wd, &st); err != nil { return nil } bs := float64(st.Bsize) total := float64(st.Blocks) * bs / 1073741824 free := float64(st.Bavail) * bs / 1073741824 usedPercent := 0.0 if total > 0 { usedPercent = math.Round((total-free)/total*10000) / 100 } return []v1.ServerDiskInfo{{ Path: wd, TotalGB: math.Round(total*100) / 100, FreeGB: math.Round(free*100) / 100, UsedPercent: usedPercent, }} }