Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wbsun/tagfilesystem

Automatically exported from code.google.com/p/tagfilesystem
https://github.com/wbsun/tagfilesystem

Last synced: 15 days ago
JSON representation

Automatically exported from code.google.com/p/tagfilesystem

Awesome Lists containing this project

README

        

Tag File System

Copyright: never think about that.

Bugfix:
When creating new file, '/' will be a tag in file.
TagDB.add_file_tags can not deal with [] tags.

Readdir support sub-tags. So that 'ls' can list directories.

Install:
This filesystem requires the followings:
Python 2.6
FUSE-2 library
Python-fuse library
Python xattr package if you want to use lstags.py command
Better in a Linux box
Python version < 2.6 is not supported.
Python 3000 is not tested yet. If you insist, try convert the 2.6 code
to 3.0.

To Mount:

Firstly some issues:
Tagfs needs a back-store directory to save its meta data and the actual
files. Operations under the mounting point directory are actually
translated into tagfs actions and performed in the files under back-store
directory.

It is better that the back-store directory is empty and if some errors
occur, remove the .tagfs_db.meta file in the back-store.

For most file operations, tagfs just mirror the underlying filesystem
APIs. The chief difference is the path-lookup which is based on tag query
in tagfs. Each directory in a path is considered to be a tag, the order
is irrelevant. So 'utah/picture/by-me/' refers to files with tags: picture,
utah and by-me.

Now the steps:
Download the sources from GoogleCode trunk.
In the up-most dir which contains cmd and tagfs sub-dirs,
run: ./tagfs/TagFS.py -o root=

The tagfs will use to store the meta data and
files. You can do things within to have fun.
If you want to monitor the status, use -d option when running TagFs.py
to enable debug output.
The log is in /tmp/tagfs.log

Command:
cmd/lstags.py:
lstags.py
if is a file: list all tags of that file, in a path format
if is a dir(or we say 'tags' in tagfs): list the union of all
of all tags that are attached by files under , but the
tags in path are not listed. So it looks like 'sub-tags'
under , however, in fact there is not hierarchy relationship
between tags.

For convenience, you may want to add the dir containing lstags.py to PATH.

Contact:
Weibin Sun [email protected]