//go:build linux // +build linux package vfs import ( "github.com/pkg/sftp" "golang.org/x/sys/unix" ) func getStatFS(path string) (*sftp.StatVFS, error) { stat := unix.Statfs_t{} err := unix.Statfs(path, &stat) if err != nil { return nil, err } return &sftp.StatVFS{ Bsize: uint64(stat.Bsize), Frsize: uint64(stat.Frsize), Blocks: stat.Blocks, Bfree: stat.Bfree, Bavail: stat.Bavail, Files: stat.Files, Ffree: stat.Ffree, Favail: stat.Ffree, // not sure how to calculate Favail Flag: uint64(stat.Flags), Namemax: uint64(stat.Namelen), }, nil }