diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-05 03:17:33 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-05 03:17:33 +0000 |
commit | 426b4ce41b90e0bf3b49764665e43382326c9375 (patch) | |
tree | 1937cd66bb75c0d7bd7175921dddb80fdcb63e4d /rdiff-backup/rdiff_backup/rpath.py | |
parent | 525d2c330b2928528f591fdf0fa3cd10fba6a5cf (diff) | |
download | rdiff-backup-426b4ce41b90e0bf3b49764665e43382326c9375.tar.gz |
Various changed to deal with new IterTreeReducer format
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@68 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/rpath.py')
-rw-r--r-- | rdiff-backup/rdiff_backup/rpath.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/rdiff-backup/rdiff_backup/rpath.py b/rdiff-backup/rdiff_backup/rpath.py index d862951..0089bf6 100644 --- a/rdiff-backup/rdiff_backup/rpath.py +++ b/rdiff-backup/rdiff_backup/rpath.py @@ -593,13 +593,9 @@ class RPath(RORPath): self.setdata() if not self.lstat(): return # must have been deleted in meantime elif self.isdir(): - def helper(dsrp, base_init_output, branch_reduction): - if dsrp.isdir(): dsrp.rmdir() - else: dsrp.delete() - itm = IterTreeReducer(lambda x: None, lambda x,y: None, None, - helper) - for dsrp in Select(self, None).set_iter(): itm(dsrp) - itm.getresult() + itm = RpathDeleter() + for dsrp in Select(self, None).set_iter(): itm(dsrp.index, dsrp) + itm.Finish() else: self.conn.os.unlink(self.path) self.setdata() @@ -752,3 +748,15 @@ class RPathFileHook: result = self.file.close() self.closing_thunk() return result + + +class RpathDeleter(IterTreeReducer): + """Delete a directory. Called by RPath.delete()""" + def start_process(self, index, dsrp): + self.dsrp = dsrp + + def end_process(self): + if self.dsrp.isdir(): self.dsrp.rmdir() + else: self.dsrp.delete() + + |