star/gdu/pkg/analyze/dir_linux-openbsd.go

33 lines
617 B
Go
Raw Normal View History

2025-04-26 19:33:14 +08:00
//go:build linux || openbsd
// +build linux openbsd
package analyze
import (
"os"
"syscall"
"time"
)
const devBSize = 512
func setPlatformSpecificAttrs(file *File, f os.FileInfo) {
if stat, ok := f.Sys().(*syscall.Stat_t); ok {
file.Usage = stat.Blocks * devBSize
file.Mtime = time.Unix(int64(stat.Mtim.Sec), int64(stat.Mtim.Nsec))
if stat.Nlink > 1 {
file.Mli = stat.Ino
}
}
}
func setDirPlatformSpecificAttrs(dir *Dir, path string) {
var stat syscall.Stat_t
if err := syscall.Stat(path, &stat); err != nil {
return
}
dir.Mtime = time.Unix(int64(stat.Mtim.Sec), int64(stat.Mtim.Nsec))
}