diff options
author | Ian Clatworthy <ian.clatworthy@internode.on.net> | 2008-02-18 12:16:29 +1000 |
---|---|---|
committer | Ian Clatworthy <ian.clatworthy@internode.on.net> | 2008-02-18 12:16:29 +1000 |
commit | 48a0231dd879fac6659943f3a0e184909ca6fed9 (patch) | |
tree | a3df710274df658999e77dfcb16a78a2c03b2012 /processors | |
parent | c49f0e0831e07b61adf8ad81c89f293935e2c7e2 (diff) | |
download | bzr-fastimport-48a0231dd879fac6659943f3a0e184909ca6fed9.tar.gz |
filtering enhancements: selected fields, filecommands, non-verbose format
Diffstat (limited to 'processors')
-rw-r--r-- | processors/filter_processor.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/processors/filter_processor.py b/processors/filter_processor.py index 5366dcc..b778cc1 100644 --- a/processors/filter_processor.py +++ b/processors/filter_processor.py @@ -29,16 +29,27 @@ class FilterProcessor(processor.ImportProcessor): No changes to the current repository are made. """ - known_params = commands.COMMAND_NAMES + known_params = commands.COMMAND_NAMES + commands.FILE_COMMAND_NAMES def __init__(self, target=None, params=None, verbose=False): # Allow creation without a target processor.ImportProcessor.__init__(self, target, params, verbose) + self.parsed_params = {} + if params: + for name, value in params.iteritems(): + if value == 1: + # All fields + fields = None + else: + fields = value.split(',') + self.parsed_params[name] = fields def pre_handler(self, cmd): """Hook for logic before each handler starts.""" - if self.params.get(cmd.name): - print "%s" % (cmd,) + if self.parsed_params.has_key(cmd.name): + fields = self.parsed_params[cmd.name] + str = cmd.dump_str(fields, self.parsed_params, self.verbose) + print "%s" % (str,) def progress_handler(self, cmd): """Process a ProgressCommand.""" |