X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fconfig.py;h=8eb45e20fa2e3f0e432efefd57aa649d3cf0c6d9;hb=d31ae14a9de247d47d9ff7b3f36705a58a065916;hp=65874250906bc74a3f485a348faaeec1648af4bc;hpb=c276b2d817510fa041dcad4d6f39fa6ea21d87ad;p=dak.git diff --git a/daklib/config.py b/daklib/config.py index 65874250..8eb45e20 100755 --- a/daklib/config.py +++ b/daklib/config.py @@ -28,6 +28,7 @@ Config access class ################################################################################ +import grp import os import apt_pkg import socket @@ -76,6 +77,19 @@ class Config(object): 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 @@ -120,7 +134,6 @@ class Config(object): for field in [('db_revision', None, int), ('defaultsuitename', 'unstable', 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))