/TFS

A tag based file system written in fuse

Primary LanguageCGNU General Public License v3.0GPL-3.0

TFS

A tag based file system written in fuse

OVERVIEW

tfs acts as an overlay for given directory and creates a enviroment that enforces tag based file browsing

usage

./tfs DIRECTORY_TO_USE_AS_ROOT MOUNT_POINT

BUILDING

dependancies

  • libfuse3 (building from source recommended)
  • libsqlite3
  • libssl

Makefile

Adjust the makefile to point to the appropriate libfuse3 location and simply

mkdir obj bin example
make

AS OF NOW BUILDING THE UTILITIES (I.E lstag, mktag, rmtag, tag) DOES NOT INSTALL THEM, HOWEVER DUE TO THE FACT THAT tfs ASSUMES NO SUBDIRECTORIES, RUNNING THE UTILIES BY AS ../mktag WILL BE SUFFICE.

UTILITIES

tfs provides a three utilities analogous to GNU's ls, mkdir and rm (lstag, mktag, rmtag respectfully) and "tag" which attaches tags to given files

mktag, rmtag

creates and removes given tags

../mktag TAGS_TO_CREATE...
../rmtag TAGS_TO_REMOVE...

lstag

shows files that have ALL given tags attached

../lstag TAGS_TO_LIST...

tag

attaches tags to a given file

../tag FILE TAG_TO_ATTACH...

PREVIEW

creating files

FILE CREATION

tfs calculates a file's sha256 hash on creation and sets its filename as such, as a small side effect of this procedure the directory tfs manages never contains duplicate files.

listing tags

an example output of lstag LSTAG

lstag with multiple tags as parameters SEARCHING TAGS

tagging files

TAGGING

removing tags

REMOVE TAGS