The Tahoe-LAFS decentralized secure filesystem.
Go to file
robk-tahoe d61fdafd41 fuse/impl_c: reworking of mac/tahoefuse, command line options, test integration
a handful of changes to the tahoefuse implementation used by the mac build, to 
make command line option parsing more flexible and robust, and moreover to 
facilitate integration of this implementation with the 'runtests' test harness
used to test the other two implementations.

this patch includes;
- improvements to command line option parsing [ see below ]
- support for 'aliases' akin to other tahoe tools
- tweaks to support linux (ubuntu hardy)

the linux support tweaks are, or at least seem to be, a result of the fact that
hardy ships with fuse 0.2pre3, as opposed to the fuse0.2 that macfuse is based
upon.  at least the versions I was working with have discrepencies in their
interfaces, but on reflection this is probably a 'python-fuse' version issue
rather than fuse per se.  At any rate, the fixes to handling the Stat objects
should be safe against either version, it's just that the bindings on hardy
lacked code that was in the 'fuse' python module on the mac...

command line options:

the need for more flexible invocation in support of the runtests harness led
me to rework the argument parsing from some simple positional hacks with a
pass-through of the remainder to the fuse binding's 'fuse_main' to a system
using twisted.usage to parse arguments, and having just one option '-o' being
explicitly a pass-through for -o options to fuse_main. the options are now:

--node-directory NODEDIR : this is used to look up the node-url to connect
to if that's not specified concretely on the command line, and also used to
determine the location of the cache directory used by the implementation,
specifically '_cache' within the nodedir.  default value: ~/.tahoe

--node-url NODEURL : specify a node-url taking precendence over that found
in the node.url file within the nodedir

--alias ALIAS : specifies the named alias should be mounted. a lookup is
performed in the alias table within 'nodedir' to find the root dir cap
the named alias must exist in the alias table of the specified nodedir

--root-uri ROOTURI : specifies that the given directory uri should be mounted

at least one of --alias and --root-uri must be given (which directory to mount
must be specified somehow)  if both are given --alias takes precedence.

--cache-timeout TIMEOUTSECS : specifies the number of seconds that cached
directory data should be considered valid for.  this tahoefuse implementation
implements directory caching for a limited time; largely because the mac (i.e.
the Finder in particular) tends to make a large number of requests in quick 
successsion when browsing the filesystem.  on the flip side, the 'runtests'
unit tests fail in the face of such caching because the changes made to the
underlying tahoe directories are not reflected in the fuse presentation.  by 
specifying a cache-timeout of 0 seconds, runtests can force the fuse layer
into refetching directory data upon each request.

any number of -oname=value options may be specified on the command line,
and they will all be passed into the underlying fuse_main call.

a single non-optional argument, the mountpoint, must also be given.
2008-09-24 17:15:35 -07:00
bin bin/tahoe: reflow error messages 2008-09-11 18:02:25 -07:00
contrib fuse/tests: slew of changes to fuse 'runtests' 2008-09-24 11:36:01 -07:00
docs CLI: reconcile webopen changes 2008-09-24 08:20:02 -07:00
mac fuse/impl_c: reworking of mac/tahoefuse, command line options, test integration 2008-09-24 17:15:35 -07:00
misc misc/make-canary-files.py: tool to create 'canary files', explained in the docstring 2008-09-24 17:47:16 -07:00
src/allmydata CLI: rework webopen, and moreover its tests w.r.t. path handling 2008-09-24 09:45:23 -07:00
twisted/plugins change #!/usr/bin/python to #!/usr/bin/env python 2007-03-29 14:01:28 -07:00
windows windows/Makefile: fix dependencies: windows-installer must cause windows-exe to run 2008-09-11 22:21:51 -07:00
_auto_deps.py use foolscap's new app_versions API, require foolscap-0.3.1 2008-09-20 11:38:53 -07:00
.darcs-boringfile .darcs-boringfile ignore tahoe-deps and tahoe-deps.tar.gz 2008-09-17 12:59:38 -07:00
COPYING.GPL new licences, move details from README to doc/install-details.html 2008-01-04 12:27:42 -07:00
COPYING.TGPPL.html more introductory doc cleanup 2008-01-04 18:09:19 -07:00
CREDITS CREDITS: thanks to Chris Galvan 2008-08-27 11:39:50 -07:00
ez_setup.py setup: require setuptools >= v0.6c8 2008-03-26 12:13:02 -07:00
Makefile setup.py,Makefile: move the 'chmod +x bin/tahoe' into setup.py 2008-09-17 16:07:56 -07:00
NEWS NEWS: finish editing for the upcoming 1.3.0 release 2008-09-19 12:30:53 -07:00
README setup: update README to point to known_issues.txt 2008-07-21 18:02:29 -07:00
relnotes.txt relnotes.txt: update and edit for the 1.2.0 release! 2008-07-21 18:04:03 -07:00
setup.cfg Makefile,docs: tahoe-deps.tar.gz now lives in separate source/deps/ directory on http://allmydata.org 2008-09-17 13:44:52 -07:00
setup.py setup: fix site-dirs to find system installed twisted on mac. 2008-09-24 10:42:55 -07:00
Tahoe.home rename bin/allmydata-tahoe to bin/tahoe. Closes #155. 2007-10-11 03:38:24 -07:00

Welcome to the Tahoe project [1], a secure, decentralized,
fault-tolerant filesystem.  All of the source code is available under
a Free Software, Open Source licence (or two).

Please see docs/about.html for an introduction, docs/install.html for
install instructions, docs/running.html for usage instructions.

Finally, see docs/known_issues.txt for things that you need to know
about if you are relying on Tahoe to store your valuable data.

[1] http://allmydata.org