Last announcement for the week! I promise!
What is FuseFS?
···
===============
FuseFS is a ruby library that lets programmers create *mounted filesystems* defined entirely in Ruby for their linux 2.4-2.6+ machines.
For example:
You're a comic reader and you always wanted to read the latest dilbert comic by running:
showimage ~/comics/dilbert.jpg
Perhaps you'd even like to edit entries in your database (included with 0.3!)
vim ~/dbname/tablename/<primary key>/field
Or you want to file your mp3 collection in several ways without ever having to really make a copy of them, and not really wanting to run scripts every time a change was made:
ls ~/mp3s/Disturbed/ # Disturbed's albums
ls ~/mp3s/Believe/ # list songs in 'Believe' album(s)
ls ~/mp3s/l/ # All songs you have starting with l
ls ~/mp3s/metal/ # A list of artists with metal songs
ls ~/mp3s/metal/songs/ # A list of all metal songs
ls ~/mp3s/metal/Disturbed/ # A list of Disturbed's metal songs
ls ~/mp3s/2003/ # A list of songs made in '03
And play it any way you like:
xmms ~/mp3s/<any of the above>/Liberated.mp3
... Well, now you CAN!
Getting it
Get it via FuseFS rubyforge project page (preferred):
http://rubyforge.org/frs/download.php/6158/fusefs-0.3.tar.gz
Or from my home server:
http://walker.deafcode.com/code/fusefs-0.3.tar.gz
Of course, if you had fusefs-0.3 installed and were running the sample "open-urifs.rb" on ~/openuri, you could just:
tar xzf ~/openuri/http/walker.deafcode.com/code/fusefs-0.3.tar.gz
Sweet, isn't it?
Changes since 0.2
After my first release of FuseFS (0.1, and subsequent 0.2 with bugfix), I've gotten a few pretty darn good suggestions, and implemented them.
* executable? is now called in case the programmer wishes to define executable files.
* touch() method is added: If you touch a file in the system, it sends a 'touch' to your filesystem - so you can have it respond to 'simple' events: "touch mountpoint/button" and make it
* Editor swap files (currently only emacs and vim, because I don't use anything else) are no longer passed to your fuse root. These are handled entirely by FuseFS, so you don't get spurious requests to edit, save and remove files you don't care about.
FuseFS-0.3 is about as near to complete as I can think to make it. It's stable, well documented (I hope) and fairly clean and as efficient as it can get. Just a few more changes, and I'll mark it 1.0.
Help wanted
- If BSD, other *nix, OS X or windows has *any* way of creating a filesystem in userland, and you know a bit about it, feel free to point my way to cross-platformness.
- If you make an FS, feel free to email it to me and I'll stick it up on RubyForge for download by anyone.