xattr_linux.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package sysx
  2. import "golang.org/x/sys/unix"
  3. // Listxattr calls syscall listxattr and reads all content
  4. // and returns a string array
  5. func Listxattr(path string) ([]string, error) {
  6. return listxattrAll(path, unix.Listxattr)
  7. }
  8. // Removexattr calls syscall removexattr
  9. func Removexattr(path string, attr string) (err error) {
  10. return unix.Removexattr(path, attr)
  11. }
  12. // Setxattr calls syscall setxattr
  13. func Setxattr(path string, attr string, data []byte, flags int) (err error) {
  14. return unix.Setxattr(path, attr, data, flags)
  15. }
  16. // Getxattr calls syscall getxattr
  17. func Getxattr(path, attr string) ([]byte, error) {
  18. return getxattrAll(path, attr, unix.Getxattr)
  19. }
  20. // LListxattr lists xattrs, not following symlinks
  21. func LListxattr(path string) ([]string, error) {
  22. return listxattrAll(path, unix.Llistxattr)
  23. }
  24. // LRemovexattr removes an xattr, not following symlinks
  25. func LRemovexattr(path string, attr string) (err error) {
  26. return unix.Lremovexattr(path, attr)
  27. }
  28. // LSetxattr sets an xattr, not following symlinks
  29. func LSetxattr(path string, attr string, data []byte, flags int) (err error) {
  30. return unix.Lsetxattr(path, attr, data, flags)
  31. }
  32. // LGetxattr gets an xattr, not following symlinks
  33. func LGetxattr(path, attr string) ([]byte, error) {
  34. return getxattrAll(path, attr, unix.Lgetxattr)
  35. }