unarr/internal/agent/disk_unix.go

18 lines
479 B
Go
Raw Permalink Normal View History

//go:build !windows
package agent
import "syscall"
// DiskInfo returns free and total bytes for the filesystem containing path.
func DiskInfo(path string) (freeBytes, totalBytes int64, err error) {
var stat syscall.Statfs_t
if err := syscall.Statfs(path, &stat); err != nil {
return 0, 0, err
}
// Available blocks * block size
freeBytes = int64(stat.Bavail) * int64(stat.Bsize)
totalBytes = int64(stat.Blocks) * int64(stat.Bsize)
return freeBytes, totalBytes, nil
}