restic/vendor/github.com/pkg/xattr
Alexander Neumann e0f68ec2c0 Vendor dependencies with `go mod vendor` 2018-08-31 21:10:26 +02:00
..
.gitignore Vendor dependencies with dep 2017-07-23 14:25:38 +02:00
.travis.sh Vendor dependencies with `go mod vendor` 2018-08-31 21:10:26 +02:00
.travis.yml Update dependencies, enable pruning for vendor/ 2018-08-01 21:32:15 +02:00
LICENSE Vendor dependencies with dep 2017-07-23 14:25:38 +02:00
README.md Update dependencies, enable pruning for vendor/ 2018-08-01 21:32:15 +02:00
go.mod Update dependencies, enable pruning for vendor/ 2018-08-01 21:32:15 +02:00
go.sum Update dependencies, enable pruning for vendor/ 2018-08-01 21:32:15 +02:00
xattr.go Update dependencies, enable pruning for vendor/ 2018-08-01 21:32:15 +02:00
xattr_darwin.go Update dependencies, enable pruning for vendor/ 2018-08-01 21:32:15 +02:00
xattr_freebsd.go Update dependencies, enable pruning for vendor/ 2018-08-01 21:32:15 +02:00
xattr_linux.go Update dependencies, enable pruning for vendor/ 2018-08-01 21:32:15 +02:00

README.md

GoDoc Go Report Card Build Status Version

xattr

Extended attribute support for Go (linux + darwin + freebsd).

"Extended attributes are name:value pairs associated permanently with files and directories, similar to the environment strings associated with a process. An attribute may be defined or undefined. If it is defined, its value may be empty or non-empty." See more...

SetWithFlags allows to additionally pass system flags to be forwarded to the underlying calls, FreeBSD does not support this and the parameter will be ignored.

The L variants of all functions (LGet/LSet/...) are identical to Get/Set/... except that they do not reference a symlink that appears at the end of a path. See GoDoc for details.

Example

  const path = "/tmp/myfile"
  const prefix = "user."

  if err := xattr.Set(path, prefix+"test", []byte("test-attr-value")); err != nil {
  	log.Fatal(err)
  }
 
  var list []string
  if list, err = xattr.List(path); err != nil {
  	log.Fatal(err)
  }
  
  var data []byte
  if data, err = xattr.Get(path, prefix+"test"); err != nil {
  	log.Fatal(err)
  }

  if err = xattr.Remove(path, prefix+"test"); err != nil {
  	log.Fatal(err)
  }

  // One can also specify the flags parameter to be passed to the OS.
  if err := xattr.SetWithFlags(path, prefix+"test", []byte("test-attr-value"), xattr.XATTR_CREATE); err != nil {
  	log.Fatal(err)
  }