Merge pull request #6493 from vieux/fix_cp_mac_os
allow utimes on mac os, only lutimes isn't supported Upstream-commit: abda245ddc38200b6ad24f79d194e6f4125a0100 Component: engine
This commit is contained in:
@ -262,11 +262,11 @@ func createTarFile(path, extractDir string, hdr *tar.Header, reader io.Reader, L
|
||||
ts := []syscall.Timespec{timeToTimespec(hdr.AccessTime), timeToTimespec(hdr.ModTime)}
|
||||
// syscall.UtimesNano doesn't support a NOFOLLOW flag atm, and
|
||||
if hdr.Typeflag != tar.TypeSymlink {
|
||||
if err := system.UtimesNano(path, ts); err != nil {
|
||||
if err := system.UtimesNano(path, ts); err != nil && err != system.ErrNotSupportedPlatform {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if err := system.LUtimesNano(path, ts); err != nil {
|
||||
if err := system.LUtimesNano(path, ts); err != nil && err != system.ErrNotSupportedPlatform {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
11
components/engine/pkg/system/utimes_darwin.go
Normal file
11
components/engine/pkg/system/utimes_darwin.go
Normal file
@ -0,0 +1,11 @@
|
||||
package system
|
||||
|
||||
import "syscall"
|
||||
|
||||
func LUtimesNano(path string, ts []syscall.Timespec) error {
|
||||
return ErrNotSupportedPlatform
|
||||
}
|
||||
|
||||
func UtimesNano(path string, ts []syscall.Timespec) error {
|
||||
return syscall.UtimesNano(path, ts)
|
||||
}
|
||||
@ -24,8 +24,5 @@ func LUtimesNano(path string, ts []syscall.Timespec) error {
|
||||
}
|
||||
|
||||
func UtimesNano(path string, ts []syscall.Timespec) error {
|
||||
if err := syscall.UtimesNano(path, ts); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
return syscall.UtimesNano(path, ts)
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// +build !linux,!freebsd
|
||||
// +build !linux,!freebsd,!darwin
|
||||
|
||||
package system
|
||||
|
||||
|
||||
Reference in New Issue
Block a user