Go to file
Lykso dc025dffb9 Expose xattr constants so they can be referenced directly by programs that might want to read them. 2023-05-01 21:53:49 -07:00
cmd
internal
notes
tags
.gitignore
LICENSE
README.md
go.mod
go.sum
main.go

README.md

Lykso's Tagging System

Caveat

I threw most of this together in a single 24 hour period, so it's sloppy. Specifically, there's a lot of code duplication throughout. Pulling that duplicated code out into their own modules would help simplify things and reduce line count.

None of this has been tested yet, but the broad strokes of what I'm trying to achieve here have been captured.

What is it?

It allows adding, removing, and retrieving tags to files and directories as extended attributes using comma-delimited strings. It also allows adding and retrieving long-form notes as extended attributes. Finally, it allows searching for paths by their tags.

Adding tags:

lyts tag your,tags,here /some/path

Removing tags:

lyts untag your,tags,here /some/path

Editing notes:

lyts notes /some/path

Viewing notes:

lyts show notes /some/path

Listing tags:

lyts show tags /some/path

Using the SQLite cache is the fastest way to query for paths:

lyts cache search your,tags,here /some/path/prefix

This cache can be manually updated:

lyts cache scan /some/path/prefix

The cache can monitor a path for changes and update itself:

lyts cache watch /some/path/prefix

The cache must be created before it can be used:

lyts cache create

At the time of writing, attempts to use the cache before creating it result in this tool crashing.

Consider the current version a rough draft.