Skip to content

ettomatic/xattr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XAttr

Build Status

Crystal bindings to XATTR.

This library allows to manage extended file attributes (XATTR). Filesystem support implemented for Linux and MacOS.

Extended attributes are name:value pairs associated permanently with files and directories and can be used to add semantic metadata, see guidelines.

Where the platform allows it, XAttr supports setting extended attributes to symlinks.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      xattr:
        github: ettomatic/xattr
  2. Run shards install

Usage

require "xattr"

xattr = XAttr.new("./myfile.txt")
xattr["user.tags"] = "mytag1,mytag2"
xattr["user.tags"]
# => "mytag1,mytag2"

xattr.keys
# => ["tags"]

xattr.to_h
# => { "tags" => "mytag1,mytag2" }

xattr.remove("user.tags")
xattr.keys
# => []

xattr["user.tags"]
# => nil

Contributing

  1. Fork it (https://github.com/ettomatic/xattr/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors