################################################################################
+import grp
import os
import apt_pkg
import socket
if conffile:
apt_pkg.read_config_file_isc(self.Cnf, conffile)
+ # Read group-specific options
+ if 'ByGroup' in self.Cnf:
+ bygroup = self.Cnf.subtree('ByGroup')
+ groups = set([os.getgid()])
+ groups.update(os.getgroups())
+
+ for group in bygroup.list():
+ gid = grp.getgrnam(group).gr_gid
+ if gid in groups:
+ if bygroup.get(group):
+ apt_pkg.read_config_file_isc(self.Cnf, bygroup[group])
+ break
+
# Rebind some functions
# TODO: Clean this up
self.get = self.Cnf.get
self.value_list = self.Cnf.value_list
self.find = self.Cnf.find
self.find_b = self.Cnf.find_b
+ self.find_i = self.Cnf.find_i
def has_key(self, name):
- return self.Cnf.has_key(name)
+ return name in self.Cnf
+
+ def __contains__(self, name):
+ return name in self.Cnf
def __getitem__(self, name):
return self.Cnf[name]
"""
for field in [('db_revision', None, int),
('defaultsuitename', 'unstable', str),
- ('exportpath', '', str)
+ ('exportpath', '', str),
+ ('unprivgroup', None, str),
+ ('use_extfiles', None, int)
]:
setattr(self, 'get_%s' % field[0], lambda s=None, x=field[0], y=field[1], z=field[2]: self.get_db_value(x, y, z))
setattr(Config, '%s' % field[0], property(fget=getattr(self, 'get_%s' % field[0])))
return get_suite(suitename)
defaultsuite = property(get_defaultsuite)
-