diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-15 00:25:31 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-05-15 00:25:31 +0000 |
commit | 62399345db69c91b455d27413536ef10ce2d847f (patch) | |
tree | a9aa053345dcb0106cf66d2e4d9d5d6ef65fd8ed /rdiff-backup/rdiff_backup | |
parent | 6b0d24eee2a2fc5652c4cb866ac390aa91d1fe24 (diff) | |
download | rdiff-backup-62399345db69c91b455d27413536ef10ce2d847f.tar.gz |
Belatedly added filename_mapping (should have been added with 0.7.4).
Changed various files to fix --exclude-filelist problems when source
remote.
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@85 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup')
-rw-r--r-- | rdiff-backup/rdiff_backup/connection.py | 8 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/selection.py | 14 |
2 files changed, 17 insertions, 5 deletions
diff --git a/rdiff-backup/rdiff_backup/connection.py b/rdiff-backup/rdiff_backup/connection.py index 94afea3..54cf527 100644 --- a/rdiff-backup/rdiff_backup/connection.py +++ b/rdiff-backup/rdiff_backup/connection.py @@ -1,3 +1,4 @@ +from __future__ import generators execfile("rdiff.py") import types, os, tempfile, cPickle, shutil, traceback @@ -487,3 +488,10 @@ class VirtualFile: def close(self): return self.connection.VirtualFile.closebyid(self.id) + + def __iter__(self): + """Iterates lines in file, like normal iter(file) behavior""" + while 1: + line = self.readline() + if not line: break + yield line diff --git a/rdiff-backup/rdiff_backup/selection.py b/rdiff-backup/rdiff_backup/selection.py index cae6db3..bd679de 100644 --- a/rdiff-backup/rdiff_backup/selection.py +++ b/rdiff-backup/rdiff_backup/selection.py @@ -157,7 +157,7 @@ class Select: if result is not None: return result return 1 - def ParseArgs(self, argtuples): + def ParseArgs(self, argtuples, filelists): """Create selection functions based on list of tuples The tuples have the form (option string, additional argument) @@ -169,6 +169,7 @@ class Select: information is sent over the link. """ + filelists_index = 0 try: for opt, arg in argtuples: if opt == "--exclude": @@ -176,19 +177,22 @@ class Select: elif opt == "--exclude-device-files": self.add_selection_func(self.devfiles_get_sf()) elif opt == "--exclude-filelist": - self.add_selection_func(self.filelist_get_sf(arg[1], - 0, arg[0])) + self.add_selection_func(self.filelist_get_sf( + filelists[filelists_index], 0, arg)) + filelists_index += 1 elif opt == "--exclude-regexp": self.add_selection_func(self.regexp_get_sf(arg, 0)) elif opt == "--include": self.add_selection_func(self.glob_get_sf(arg, 1)) elif opt == "--include-filelist": - self.add_selection_func(self.filelist_get_sf(arg[1], - 1, arg[0])) + self.add_selection_func(self.filelist_get_sf( + filelists[filelists_index], 1, arg)) + filelists_index += 1 elif opt == "--include-regexp": self.add_selection_func(self.regexp_get_sf(arg, 1)) else: assert 0, "Bad selection option %s" % opt except SelectError, e: self.parse_catch_error(e) + assert filelists_index == len(filelists) self.parse_last_excludes() self.parse_rbdir_exclude() |