5 Gentoo-keys - config.py
7 Holds configuration keys and values
9 @copyright: 2012 by Brian Dolbec <dol-sen@gentoo.org>
10 @license: GNU GNU GPL2, see COPYING for details.
15 from collections import namedtuple
18 from pygpg.config import GPGConfig
20 from gkeys.utils import path
23 # establish the eprefix, initially set so eprefixify can
25 EPREFIX = "@GENTOO_PORTAGE_EPREFIX@"
27 # check and set it if it wasn't
28 if "GENTOO_PORTAGE_EPREFIX" in EPREFIX:
33 class GKeysConfig(GPGConfig):
34 """ Configuration superclass which holds our gentoo-keys
35 config settings for pygpg """
37 def __init__ (self, config=None, root=None):
38 """ Class initialiser """
39 GPGConfig.__init__(self)
41 self.root = root or ''
43 self.defaults['config'] = config
44 self.defaults['configdir'] = os.path.dirname(config)
46 self.defaults['configdir'] = path([self.root, EPREFIX, '/etc/gentoo-keys'])
47 self.defaults['config'] = '%(configdir)s/gkeys.conf'
48 self.configparser = None
50 # read our config file overrides
54 def _add_gkey_defaults(self):
55 self.defaults['keysdir'] = path([self.root, EPREFIX, '/var/gentoo/gkeys'])
56 self.defaults['devkeydir'] = '%(keysdir)s/devs'
57 self.defaults['releasekeydir'] = '%(keysdir)s/release')
58 self.defaults['knownkeysfile'] = '%(keysdir)s/knownkeys'
62 def read_config(self):
63 '''Reads the config file into memory
65 if "%(configdir)s" in self.defaults['config']:
67 self.defaults['config'] = self.defaults['config'] \
68 % {'configdir': self.defaults['configdir']}
69 defaults = self.get_defaults()
70 self.configparser = ConfigParser.ConfigParser(defaults)
71 self.configparser.add_section('MAIN')
72 self.configparser.read(defaults['config'])
75 if self.configparser and self.configparser.has_option('MAIN', key):
76 return self.configparser.get('MAIN', key)
78 super('GKeysConfig', self)._get_(key)
81 class GKEY(namedtuple('GKEY', ['name', 'keyid', 'longkeyid',
82 'fingerprint', 'keyring']):
83 '''Class to hold the relavent info about a key'''