|
| 1 | +// +build linux darwin |
| 2 | + |
1 | 3 | package sysx |
2 | 4 |
|
3 | 5 | import ( |
4 | 6 | "bytes" |
5 | | - "fmt" |
6 | 7 | "syscall" |
| 8 | + |
| 9 | + "golang.org/x/sys/unix" |
7 | 10 | ) |
8 | 11 |
|
9 | | -const defaultXattrBufferSize = 5 |
| 12 | +// Listxattr calls syscall listxattr and reads all content |
| 13 | +// and returns a string array |
| 14 | +func Listxattr(path string) ([]string, error) { |
| 15 | + return listxattrAll(path, unix.Listxattr) |
| 16 | +} |
| 17 | + |
| 18 | +// Removexattr calls syscall removexattr |
| 19 | +func Removexattr(path string, attr string) (err error) { |
| 20 | + return unix.Removexattr(path, attr) |
| 21 | +} |
| 22 | + |
| 23 | +// Setxattr calls syscall setxattr |
| 24 | +func Setxattr(path string, attr string, data []byte, flags int) (err error) { |
| 25 | + return unix.Setxattr(path, attr, data, flags) |
| 26 | +} |
| 27 | + |
| 28 | +// Getxattr calls syscall getxattr |
| 29 | +func Getxattr(path, attr string) ([]byte, error) { |
| 30 | + return getxattrAll(path, attr, unix.Getxattr) |
| 31 | +} |
10 | 32 |
|
11 | | -var ErrNotSupported = fmt.Errorf("not supported") |
| 33 | +// LListxattr lists xattrs, not following symlinks |
| 34 | +func LListxattr(path string) ([]string, error) { |
| 35 | + return listxattrAll(path, unix.Llistxattr) |
| 36 | +} |
| 37 | + |
| 38 | +// LRemovexattr removes an xattr, not following symlinks |
| 39 | +func LRemovexattr(path string, attr string) (err error) { |
| 40 | + return unix.Lremovexattr(path, attr) |
| 41 | +} |
| 42 | + |
| 43 | +// LSetxattr sets an xattr, not following symlinks |
| 44 | +func LSetxattr(path string, attr string, data []byte, flags int) (err error) { |
| 45 | + return unix.Lsetxattr(path, attr, data, flags) |
| 46 | +} |
| 47 | + |
| 48 | +// LGetxattr gets an xattr, not following symlinks |
| 49 | +func LGetxattr(path, attr string) ([]byte, error) { |
| 50 | + return getxattrAll(path, attr, unix.Lgetxattr) |
| 51 | +} |
| 52 | + |
| 53 | +const defaultXattrBufferSize = 5 |
12 | 54 |
|
13 | 55 | type listxattrFunc func(path string, dest []byte) (int, error) |
14 | 56 |
|
|
0 commit comments