pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/system/user_bsd.go (about) 1 //go:build darwin || freebsd 2 // +build darwin freebsd 3 4 package system 5 6 // ////////////////////////////////////////////////////////////////////////////////// // 7 // // 8 // Copyright (c) 2022 ESSENTIAL KAOS // 9 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 10 // // 11 // ////////////////////////////////////////////////////////////////////////////////// // 12 13 import ( 14 "syscall" 15 "time" 16 ) 17 18 // ////////////////////////////////////////////////////////////////////////////////// // 19 20 // getTimes is copy of fsutil.GetTimes 21 func getTimes(path string) (time.Time, time.Time, time.Time, error) { 22 if path == "" { 23 return time.Time{}, time.Time{}, time.Time{}, ErrEmptyPath 24 } 25 26 var stat = &syscall.Stat_t{} 27 28 err := syscall.Stat(path, stat) 29 30 if err != nil { 31 return time.Time{}, time.Time{}, time.Time{}, err 32 } 33 34 return time.Unix(int64(stat.Atimespec.Sec), int64(stat.Atimespec.Nsec)), 35 time.Unix(int64(stat.Mtimespec.Sec), int64(stat.Mtimespec.Nsec)), 36 time.Unix(int64(stat.Ctimespec.Sec), int64(stat.Ctimespec.Nsec)), 37 nil 38 }