diff options
-rw-r--r-- | gbp/config.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/gbp/config.py b/gbp/config.py index b9948aca..86ece2e5 100644 --- a/gbp/config.py +++ b/gbp/config.py @@ -71,6 +71,16 @@ class GbpOptionParser(OptionParser): self.__parse_config_files() OptionParser.__init__(self, usage=usage, version='%s %s' % (self.command, gbp_version)) + def get_default(self, option_name, **kwargs): + default = self.config[option_name] + if kwargs.has_key('action'): + if kwargs['action'] in [ 'store_true', 'store_false' ] and self.config[option_name]: + if self.config[option_name] in [ 'True', 'False' ]: + default = eval(self.config[option_name]) + else: + raise ValueError, "Boolean options must be True or False" + return default + def add_config_file_option(self, option_name, dest, help, **kwargs): """ set a option for the command line parser, the default is read from the config file @@ -81,15 +91,8 @@ class GbpOptionParser(OptionParser): @var help: help text @type help: string """ - default = self.config[option_name] - if kwargs.has_key('action'): - if kwargs['action'] in [ 'store_true', 'store_false'] and self.config[option_name]: - if self.config[option_name] in [ 'True', 'False' ]: - default = eval(self.config[option_name]) - else: - raise ValueError, "Boolean options must be True or False" - OptionParser.add_option(self,"--%s%s" % (self.prefix, option_name), dest=dest, - default=default, + OptionParser.add_option(self, "--%s%s" % (self.prefix, option_name), dest=dest, + default=self.get_default(option_name, **kwargs), help=help % self.config, **kwargs) # vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·: |