X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/python-routefs.git/blobdiff_plain/4bdfb966d98c34dc5e82d632007955d40ba71929..ddcc85d37d43d8e7ac5f6caf31e07608818aab4d:/routefs/examples/pyhesiodfs.py diff --git a/routefs/examples/pyhesiodfs.py b/routefs/examples/pyhesiodfs.py index 2831a14..880dbb4 100755 --- a/routefs/examples/pyhesiodfs.py +++ b/routefs/examples/pyhesiodfs.py @@ -1,22 +1,25 @@ -#!/sw/bin/python2.5 +#!/usr/bin/python import hesiod import routefs from routes import Mapper class PyHesiodFS(routefs.RouteFS): + controllers = ['getList', 'getReadme', 'getLocker'] def __init__(self, *args, **kwargs): super(PyHesiodFS, self).__init__(*args, **kwargs) + self.fuse_args.add("allow_other", True) self.cache = {} def make_map(self): m = Mapper() m.connect('', controller='getList') + m.connect('README.txt', controller='getReadme') m.connect(':action', controller='getLocker') return m - def getLocker(self, action): + def getLocker(self, action, **kwargs): if action in self.cache: return routefs.Symlink(self.cache[action]) @@ -28,8 +31,17 @@ class PyHesiodFS(routefs.RouteFS): except (TypeError, KeyError, IndexError): return - def getList(self, action): - return routefs.Directory(self.cache.keys()) + def getList(self, **kwargs): + return self.cache.keys() + ['README.txt'] + + def getReadme(self, **kwargs): + return """ +This is the pyHesiodFS FUSE automounter. To access a Hesiod filsys, +just access /mit/name. + +If you're using the Finder, try pressing Cmd+Shift+G and then entering +/mit/name +""" if __name__ == '__main__': routefs.main(PyHesiodFS)