Skip to content

keithwoelke/tagfs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

To compile this program, you will need the sqlite3 (libsqlite3-dev), FUSE (libfuse-dev), and glib (libglib2.0-dev) development files.

TagFS must be run in single-thread mode, otherwise the behavior is undefined. This can be accomplished with the -s flag. Example: ./tagfs -s TagFS/

Operations implemented:

Delete (Non-Root Location) -> Remove all tags
Delete (Root) - Remove file
Move - Remove all tags and apply tags at new location

Fuse behaviors:

Copy = Open (src) -> Create (dest) -> Read (src) -> Write (dest)
Move = Rename
Copy in = Create (dest) -> Write (dest)
Move in = Create (dest) -> Write (dest)
Copy out = Open (src) -> Read (src)
Move out = Open (src) -> Read (src)
Copy over = Open (src) -> Open (dest) -> Truncate (dest) -> Read (src) -> Write (dest)
Move over = Rename
Copy in over = Open(dest) -> Truncate (dest) -> Write (dest)
Move in over = Create (dest) -> Write (dest)

About

Semantic file system implementation using FUSE

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages