[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] daklib/config.py: allow additional configuration files for specific groups



---
 daklib/config.py |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/daklib/config.py b/daklib/config.py
index c79582c..99b84dd 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
-- 
1.7.2.5



Reply to: