mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-18 00:47:48 +08:00
24 lines
500 B
Go
24 lines
500 B
Go
//go:build !windows && !openbsd
|
|
// +build !windows,!openbsd
|
|
|
|
package disk
|
|
|
|
import (
|
|
"syscall"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func GetDiskStat(root string) (DiskStat, error) {
|
|
var st syscall.Statfs_t
|
|
if err := syscall.Statfs(root, &st); err != nil {
|
|
return DiskStat{}, errors.Wrapf(err, "could not stat fs at %s", root)
|
|
}
|
|
|
|
return DiskStat{
|
|
Total: int64(st.Bsize) * int64(st.Blocks),
|
|
Free: int64(st.Bsize) * int64(st.Bfree),
|
|
Available: int64(st.Bsize) * int64(st.Bavail),
|
|
}, nil
|
|
}
|