コード例 #1
0
 def read_config(self, filename=None):
     '''Reads the config file into memory
     '''
     if "%(configdir)s" in self.defaults['config']:
         # fix the config path
         self.defaults['config'] = self.defaults['config'] \
             % {'configdir': self.defaults['configdir']}
     for key in self.defaults:
         self.defaults[key] = self._sub_(self.defaults[key])
     defaults = OrderedDict()
     # Add only the defaults we want in the configparser
     for key in [
             'gkeysdir', 'homedir', 'keyring', 'sign-keydir', 'logdir',
             'seedsdir', 'keyserver'
     ]:
         defaults[key] = self.defaults[key]
     if filename == None:
         filename = self.defaults['config']
     if "foo-bar'd" in filename:
         print(
             "Config: read_config(); Configuration ERROR: filename: %s, access: %s"
             % (filename, os.access(filename, os.R_OK)))
     self.configparser = SaneConfigParser(defaults)
     self.configparser.read(filename)
     if self.configparser.has_section('base'):
         # I consider this hacky, but due to shortcomings of ConfigParser
         # we need to reset the defaults redefined in the 'base' section
         for key in self.configparser.options('base'):
             self.defaults[key] = self.configparser.get('base', key)
             defaults[key] = self.defaults[key]
     self.configparser._defaults = defaults
     for section in self.configparser.sections():
         if section == 'base':
             continue
         for key in self.configparser.options(section):
             if section not in self.defaults:
                 self.defaults[section] = {}
             self.defaults[section][key] = self.configparser.get(
                 section, key)