1
0
Fork 0
mirror of https://github.com/vbatts/go-mtree.git synced 2024-12-18 12:06:30 +00:00
go-mtree/updatefuncs_linux.go
Tobias Klauser 3fe21921b5 *: use UtimesNanoAt from x/sys/unix
Use UtimesNanoAt from golang.org/x/sys/unix instead of manually crafting
the syscall.

Since UtimesNanoAt is provided for all unix-like OSes, factor out
lchtimes to its own file with appropriate build tags. This allows to
make use of it on darwin, dragonfly, freebsd, openbsd, netbsd and
solaris in addition to linux.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2017-10-20 12:31:55 +02:00

21 lines
391 B
Go

// +build linux
package mtree
import (
"encoding/base64"
"os"
"github.com/vbatts/go-mtree/xattr"
)
func xattrUpdateKeywordFunc(path string, kv KeyVal) (os.FileInfo, error) {
buf, err := base64.StdEncoding.DecodeString(kv.Value())
if err != nil {
return nil, err
}
if err := xattr.Set(path, kv.Keyword().Suffix(), buf); err != nil {
return nil, err
}
return os.Lstat(path)
}