Return ENOENT if a file doesn't exist for readlink.
[invirt/packages/python-routefs.git] / routefs / __init__.py
index 9e2c6cc..875345b 100644 (file)
@@ -86,6 +86,10 @@ class RouteFS(fuse.Fuse):
             return
         controller = match.pop('controller')
         result = getattr(self, controller)(**match)
+        if type(result) is str:
+            result = File(result)
+        if type(result) is list:
+            result = Directory(result)
         return result
     
     def readdir(self, path, offset):
@@ -144,7 +148,9 @@ class RouteFS(fuse.Fuse):
         If the path specified is a symlink, return the target
         """
         obj = self._get_file(path)
-        if type(obj) is not Symlink:
+        if obj is None:
+            return -errno.ENOENT
+        elif type(obj) is not Symlink:
             return -errno.EINVAL
         else:
             return obj
@@ -189,7 +195,7 @@ def main(cls):
     server = cls(version="%prog " + fuse.__version__,
                  usage=fuse.Fuse.fusage,
                  dash_s_do='setsingle')
-    server.parse(errex=1)
+    server.parse(values=server, errex=1)
     server.main()
 
 from dictfs import DictFS