nightingale/vendor/github.com/toolkits/pkg/nux/dfstat.go

66 lines
1.2 KiB
Go

package nux
import (
"fmt"
"strings"
)
var FSSPEC_IGNORE = map[string]struct{}{
"none": struct{}{},
"nodev": struct{}{},
"tmpfs": struct{}{},
"shm": struct{}{},
"proc": struct{}{},
}
var FSTYPE_IGNORE = map[string]struct{}{
"cgroup": struct{}{},
"debugfs": struct{}{},
"devtmpfs": struct{}{},
"rpc_pipefs": struct{}{},
"rootfs": struct{}{},
}
var FSFILE_PREFIX_IGNORE = []string{
"/dev",
"/sys",
"/net",
"/misc",
"/proc",
"/lib",
}
func IgnoreFsFile(fs_file string) bool {
for _, prefix := range FSFILE_PREFIX_IGNORE {
if strings.HasPrefix(fs_file, prefix) {
return true
}
}
return false
}
type DeviceUsage struct {
FsSpec string
FsFile string
FsVfstype string
BlocksAll uint64
BlocksUsed uint64
BlocksFree uint64
BlocksUsedPercent float64
BlocksFreePercent float64
InodesAll uint64
InodesUsed uint64
InodesFree uint64
InodesUsedPercent float64
InodesFreePercent float64
}
func (this *DeviceUsage) String() string {
return fmt.Sprintf("<FsSpec:%s, FsFile:%s, FsVfstype:%s, BPFree:%f...>",
this.FsSpec,
this.FsFile,
this.FsVfstype,
this.BlocksFreePercent)
}