]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/utils.py
mailwhitelist
[dak.git] / daklib / utils.py
index 651e13ae7b6ac507ef468bda804df4f047a0b51c..951270b5d2074fc380cfaba696d16b4d56bb010d 100755 (executable)
@@ -43,7 +43,8 @@ import email as modemail
 from dak_exceptions import *
 from regexes import re_html_escaping, html_escaping, re_single_line_field, \
                     re_multi_line_field, re_srchasver, re_verwithext, \
-                    re_parse_maintainer, re_taint_free, re_gpg_uid, re_re_mark
+                    re_parse_maintainer, re_taint_free, re_gpg_uid, re_re_mark, \
+                    re_whitespace_comment
 
 ################################################################################
 
@@ -616,10 +617,11 @@ def send_mail (message, filename=""):
         whitelist_in = open_file(Cnf["Dinstall::MailWhiteList"])
         try:
             for line in whitelist_in:
-                if re_re_mark.match(line):
-                    whitelist.append(re.compile(re_re_mark.sub("", line.strip(), 1)))
-                else:
-                    whitelist.append(re.compile(re.escape(line.strip())))
+                if not re_whitespace_comment.match(line):
+                    if re_re_mark.match(line):
+                        whitelist.append(re.compile(re_re_mark.sub("", line.strip(), 1)))
+                    else:
+                        whitelist.append(re.compile(re.escape(line.strip())))
         finally:
             whitelist_in.close()
 
@@ -745,6 +747,15 @@ def where_am_i ():
 
 def which_conf_file ():
     res = socket.gethostbyaddr(socket.gethostname())
+    # In case we allow local config files per user, try if one exists
+    if Cnf.FindB("Config::" + res[0] + "::AllowLocalConfig"):
+        homedir = os.getenv("HOME")
+        confpath = os.path.join(homedir, "/etc/dak.conf")
+        if os.path.exists(confpath):
+            apt_pkg.ReadConfigFileISC(Cnf,default_config)
+
+    # We are still in here, so there is no local config file or we do
+    # not allow local files. Do the normal stuff.
     if Cnf.get("Config::" + res[0] + "::DakConfig"):
         return Cnf["Config::" + res[0] + "::DakConfig"]
     else:
@@ -752,6 +763,13 @@ def which_conf_file ():
 
 def which_apt_conf_file ():
     res = socket.gethostbyaddr(socket.gethostname())
+    # In case we allow local config files per user, try if one exists
+    if Cnf.FindB("Config::" + res[0] + "::AllowLocalConfig"):
+        homedir = os.getenv("HOME")
+        confpath = os.path.join(homedir, "/etc/dak.conf")
+        if os.path.exists(confpath):
+            apt_pkg.ReadConfigFileISC(Cnf,default_config)
+
     if Cnf.get("Config::" + res[0] + "::AptConfig"):
         return Cnf["Config::" + res[0] + "::AptConfig"]
     else: