From: nejucomo <nejucomo@gmail.com>
Date: Mon, 21 Jan 2008 03:56:27 +0000 (-0700)
Subject: tahoe_fuse: cmdline args & system test: Allow nonstandard client basedirs to be speci... 
X-Git-Tag: allmydata-tahoe-0.8.0~235
X-Git-Url: https://git.rkrishnan.org/Site/Content/vdrive?a=commitdiff_plain;h=de022b2115b52076e918cb9fb5da44bd46b64a11;p=tahoe-lafs%2Ftahoe-lafs.git

tahoe_fuse: cmdline args & system test: Allow nonstandard client basedirs to be specified and update the system tests to use this feature...

The commandline option handling of the version of python-fuse I use is arcane.  This is an ugly hack.
---

diff --git a/contrib/fuse/runtests.py b/contrib/fuse/runtests.py
index 275ad4aa..e6d51468 100644
--- a/contrib/fuse/runtests.py
+++ b/contrib/fuse/runtests.py
@@ -229,17 +229,19 @@ class SystemTest (object):
         self.mount_fuse_layer()
         
     def mount_fuse_layer(self):
-        # FIXME - tahoe_fuse.py: This probably currently fails because
-        # tahoe_fuse looks in ~/.tahoe.
-        
         print 'Mounting fuse interface.'
+        client = self.get_interface_client()
+
         self.mountpoint = tempfile.mkdtemp(prefix='tahoe_fuse_mp_')
         try:
             thispath = os.path.abspath(sys.argv[0])
             thisdir = os.path.dirname(thispath)
             fusescript = os.path.join(thisdir, 'tahoe_fuse.py')
             try:
-                proc = subprocess.Popen([fusescript, self.mountpoint, '-f'])
+                proc = subprocess.Popen([fusescript,
+                                         self.mountpoint,
+                                         '-f',
+                                         '--basedir', client.base])
                 # FIXME: Verify the mount somehow?
 
                 self.run_test_layer()
diff --git a/contrib/fuse/tahoe_fuse.py b/contrib/fuse/tahoe_fuse.py
index d00806f2..f9485642 100644
--- a/contrib/fuse/tahoe_fuse.py
+++ b/contrib/fuse/tahoe_fuse.py
@@ -68,10 +68,20 @@ MagicDevNumber = 42
 UnknownSize = -1
 
 
-def main(args = sys.argv[1:]):
-    if not args:
-        raise SystemExit("Usage: %s MOUNTPOINT\n\nThe argument MOUNTPOINT is an empty directory where you want to mount a tahoe filesystem.\n" % (sys.argv[0],))
-    fs = TahoeFS(os.path.expanduser(TahoeConfigDir))
+def main():
+    basedir = os.path.expanduser(TahoeConfigDir)
+
+    for i, arg in enumerate(sys.argv):
+        if arg == '--basedir':
+            try:
+                basedir = sys.argv[i+1]
+                sys.argv[i:i+2] = []
+            except IndexError:
+                sys.argv = [sys.argv[0], '--help']
+                
+    print 'DEBUG:', sys.argv
+            
+    fs = TahoeFS(basedir)
     fs.main()