From: Anders Kaseorg Date: Sun, 31 Aug 2008 10:27:16 +0000 (-0400) Subject: Make readlink() a method of TreeKey. X-Git-Tag: 1.0.0~2 X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/python-routefs.git/commitdiff_plain/44655c396b1b0ef361216385bbd1b2b866e9b922 Make readlink() a method of TreeKey. Signed-off-by: Anders Kaseorg --- diff --git a/routefs/__init__.py b/routefs/__init__.py index 162601e..2c62ae5 100644 --- a/routefs/__init__.py +++ b/routefs/__init__.py @@ -119,13 +119,7 @@ class RouteFS(fuse.Fuse): """ If the path specified is a symlink, return the target """ - obj = self._get_file(path) - if obj is None: - return -errno.ENOENT - elif type(obj) is not Symlink: - return -errno.EINVAL - else: - return obj + return self._get_file(path).readlink() class TreeKey(object): def getattr(self): @@ -134,6 +128,8 @@ class TreeKey(object): return -errno.EINVAL def read(self, length, offset): return -errno.EINVAL + def readlink(self): + return -errno.EINVAL class NoEntry(TreeKey): def getattr(self): @@ -142,6 +138,8 @@ class NoEntry(TreeKey): return -errno.ENOENT def read(self, length, offset): return -errno.ENOENT + def readlink(self): + return -errno.ENOENT class TreeEntry(TreeKey): default_mode = 0444 @@ -187,6 +185,9 @@ class Symlink(TreeEntry, str): st.st_size = len(self) return st + def readlink(self): + return self + class File(TreeEntry, str): """ A dummy class representing something that should be a file