-#!/usr/bin/python
-
"""
DictFS allows you to easily create read-only filesystems when the
file tree is known in advance.
file names and the values corresponding to the file contents.
"""
-import routefs
-from routes import Mapper
+
import os
+from routes import Mapper
+
+import routefs
+
+
class DictFS(routefs.RouteFS):
+ controllers = ['handler']
+
@property
def files(self):
"""
This property should be overridden in your DictFS descendant
"""
- return dict(Hello='World',
- Directory=dict(a='a', b='b', c=routefs.Symlink('a')))
-
+ return dict()
+
def make_map(self):
m = Mapper()
-
+
m.connect('*path', controller='handler')
-
+
return m
-
+
def handler(self, path, **kwargs):
if path != '':
elements = path.split(os.path.sep)
else:
elements = []
-
+
try:
tree = self.files
for elt in elements:
tree = tree[elt]
except KeyError:
return
-
+
if type(tree) is dict:
- return routefs.Directory(tree.keys())
+ return tree.keys()
else:
return tree
-
-if __name__ == '__main__':
- routefs.main(DictFS)