27 lines
490 B
Go
27 lines
490 B
Go
//go:build !windows
|
|
// +build !windows
|
|
|
|
package main
|
|
|
|
import (
|
|
"path/filepath"
|
|
"syscall"
|
|
)
|
|
|
|
func getTotalDiskSpace(cachePath string) uint64 {
|
|
var stat syscall.Statfs_t
|
|
|
|
absPath, err := filepath.Abs(cachePath)
|
|
if err != nil {
|
|
printErr("Failed to resolve absolute path for: %s", cachePath)
|
|
return 0
|
|
}
|
|
|
|
err = syscall.Statfs(absPath, &stat)
|
|
if err != nil {
|
|
printErr("Failed to retrieve filesystem stats for: %s", absPath)
|
|
return 0
|
|
}
|
|
|
|
return stat.Blocks * uint64(stat.Bsize)
|
|
}
|