Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Silbe <sascha-pgp@silbe.org>2011-10-11 17:26:50 (GMT)
committer Sascha Silbe <sascha-pgp@silbe.org>2011-10-11 17:26:50 (GMT)
commit6388c5c5272c818edd6d92caa7437f39f19d7818 (patch)
tree8928dae8257f6b0a1c1d37eba38b89d1e60842fa
parent3915c391918b48cfd9085bf02de3ae9ef59ea2a5 (diff)
Fix '.' and '..' directory entries
When using generators, we can't simply call the parent method. Instead we need to iterate over the iterator it returns and yield each entry individually. Also fixes a missing assignment.
-rwxr-xr-xdatastore-fuse.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/datastore-fuse.py b/datastore-fuse.py
index d127fed..90ea326 100755
--- a/datastore-fuse.py
+++ b/datastore-fuse.py
@@ -97,6 +97,7 @@ class Symlink(fuse.Stat):
class Directory(fuse.Stat):
def __init__(self, path, parent_path, filesystem, mode):
self._path = path
+ self._parent_path = parent_path
self._filesystem = filesystem
fuse.Stat.__init__(self, st_mode=stat.S_IFDIR | mode, st_nlink=2,
st_uid=os.getuid(), st_gid=os.getgid(),
@@ -147,7 +148,8 @@ class ByTitleDirectory(Directory):
Directory.__init__(self, path, parent_path, filesystem, 0750)
def readdir(self, offset):
- Directory.readdir(self, offset)
+ for entry in Directory.readdir(self, offset):
+ yield entry
for entry in self._find_entries():
if 'uid' not in entry:
@@ -229,7 +231,8 @@ class ByIdDirectory(Directory):
self._filesystem.get_inode_number(path))
def readdir(self, offset):
- Directory.readdir(self, offset)
+ for entry in Directory.readdir(self, offset):
+ yield entry
for entry in self._filesystem.find({}, {'metadata': ['uid']}):
if 'uid' not in entry:
@@ -276,7 +279,8 @@ class ByTagsDirectory(Directory):
self._tag_dirs = {}
def readdir(self, offset):
- Directory.readdir(self, offset)
+ for entry in Directory.readdir(self, offset):
+ yield entry
for tag in self._get_tags():
if '/' in tag: