Add system.Stat support for darwin/macOS

darwin had unbuildable support for our system.Stat() implementation.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
This commit is contained in:
Phil Estes 2016-08-24 11:24:08 -04:00
parent 7cd88e5ec4
commit 76a416ac37
No known key found for this signature in database
GPG key ID: 0F386284C03A1162
2 changed files with 33 additions and 1 deletions

32
pkg/system/stat_darwin.go Normal file
View file

@ -0,0 +1,32 @@
package system
import (
"syscall"
)
// fromStatT creates a system.StatT type from a syscall.Stat_t type
func fromStatT(s *syscall.Stat_t) (*StatT, error) {
return &StatT{size: s.Size,
mode: uint32(s.Mode),
uid: s.Uid,
gid: s.Gid,
rdev: uint64(s.Rdev),
mtim: s.Mtimespec}, nil
}
// FromStatT loads a system.StatT from a syscall.Stat_t.
func FromStatT(s *syscall.Stat_t) (*StatT, error) {
return fromStatT(s)
}
// Stat takes a path to a file and returns
// a system.StatT type pertaining to that file.
//
// Throws an error if the file does not exist
func Stat(path string) (*StatT, error) {
s := &syscall.Stat_t{}
if err := syscall.Stat(path, s); err != nil {
return nil, err
}
return fromStatT(s)
}

View file

@ -1,4 +1,4 @@
// +build !linux,!windows,!freebsd,!solaris,!openbsd
// +build !linux,!windows,!freebsd,!solaris,!openbsd,!darwin
package system