From 4522c7bce5a7a05505816b444132e4cf3485944d Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 13 May 2022 09:51:46 +0900 Subject: [PATCH] implement Fileinfo for Windows and non-Windows --- internal/internal.go | 9 --------- internal/internal_unix.go | 17 +++++++++++++++++ internal/internal_windows.go | 12 ++++++++++++ 3 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 internal/internal_unix.go create mode 100644 internal/internal_windows.go diff --git a/internal/internal.go b/internal/internal.go index 95d0f78..e4da7f8 100644 --- a/internal/internal.go +++ b/internal/internal.go @@ -176,15 +176,6 @@ func MkdirAll(path string, mode os.FileMode, uid, gid int) error { return nil } -// Fileinfo returns syscall fields from a FileInfo object. -func Fileinfo(fi os.FileInfo) (uid, gid int) { - if fi == nil { - return -1, -1 - } - stat := fi.Sys().(*syscall.Stat_t) - return int(stat.Uid), int(stat.Gid) -} - // ParseSnapshotPath parses the index from a snapshot filename. Used by path-based replicas. func ParseSnapshotPath(s string) (index int, err error) { a := snapshotPathRegex.FindStringSubmatch(s) diff --git a/internal/internal_unix.go b/internal/internal_unix.go new file mode 100644 index 0000000..7c4869c --- /dev/null +++ b/internal/internal_unix.go @@ -0,0 +1,17 @@ +//go:build !windows + +package internal + +import ( + "os" + "syscall" +) + +// Fileinfo returns syscall fields from a FileInfo object. +func Fileinfo(fi os.FileInfo) (uid, gid int) { + if fi == nil { + return -1, -1 + } + stat := fi.Sys().(*syscall.Stat_t) + return int(stat.Uid), int(stat.Gid) +} diff --git a/internal/internal_windows.go b/internal/internal_windows.go new file mode 100644 index 0000000..5b74159 --- /dev/null +++ b/internal/internal_windows.go @@ -0,0 +1,12 @@ +//go:build windows + +package internal + +import ( + "os" +) + +// Fileinfo returns syscall fields from a FileInfo object. +func Fileinfo(fi os.FileInfo) (uid, gid int) { + return -1, -1 +}