mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
It has no external users, and this package still has too many different responsibilities, some of which may be available elsewhere, so moving it internal so that we can decide to dismantle it further. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
26 lines
639 B
Go
26 lines
639 B
Go
//go:build linux || freebsd
|
|
|
|
package system
|
|
|
|
import (
|
|
"errors"
|
|
"syscall"
|
|
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
// LUtimesNano is used to change access and modification time of the specified path.
|
|
// It's used for symbol link file because unix.UtimesNano doesn't support a NOFOLLOW flag atm.
|
|
func LUtimesNano(path string, ts []syscall.Timespec) error {
|
|
uts := []unix.Timespec{
|
|
unix.NsecToTimespec(syscall.TimespecToNsec(ts[0])),
|
|
unix.NsecToTimespec(syscall.TimespecToNsec(ts[1])),
|
|
}
|
|
err := unix.UtimesNanoAt(unix.AT_FDCWD, path, uts, unix.AT_SYMLINK_NOFOLLOW)
|
|
if err != nil && !errors.Is(err, unix.ENOSYS) {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|