]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/config.py
Merge branch 'master' into pu/backports-merge
[dak.git] / daklib / config.py
index 65874250906bc74a3f485a348faaeec1648af4bc..339604a1a60f275fda8c10954ecb3f1dde33792d 100755 (executable)
@@ -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