| 12345678910111213141516171819202122232425262728 | 
							- // +build freebsd darwin
 
- 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.Bsize),
 
- 		Blocks:  stat.Blocks,
 
- 		Bfree:   stat.Bfree,
 
- 		Bavail:  uint64(stat.Bavail),
 
- 		Files:   stat.Files,
 
- 		Ffree:   uint64(stat.Ffree),
 
- 		Favail:  uint64(stat.Ffree), // not sure how to calculate Favail
 
- 		Flag:    uint64(stat.Flags),
 
- 		Namemax: 255, // we use a conservative value here
 
- 	}, nil
 
- }
 
 
  |