]> git.decadent.org.uk Git - dak.git/blobdiff - dak/rm.py
Fix error with qa, as we send mail to removed-packages@qa... twice
[dak.git] / dak / rm.py
index c0f6810dd1baf27233ae32760897203d225c4031..f4452c6f0c8042aad080859df367b4e139c0308c 100755 (executable)
--- a/dak/rm.py
+++ b/dak/rm.py
@@ -283,7 +283,7 @@ def main ():
 
     for i in [ "architecture", "binary-only", "carbon-copy", "component",
                "done", "help", "no-action", "partial", "rdep-check", "reason",
-               "source-only" ]:
+               "source-only", "Do-Close" ]:
         if not cnf.has_key("Rm::Options::%s" % (i)):
             cnf["Rm::Options::%s" % (i)] = ""
     if not cnf.has_key("Rm::Options::Suite"):
@@ -588,17 +588,9 @@ def main ():
     print "done."
 
     Subst = {}
-    Subst["__RM_ADDRESS__"] = cnf["Rm::MyEmailAddress"]
+    Subst["__RM_ADDRESS__"] = cnf["Dinstall::MyEmailAddress"]
     Subst["__BUG_SERVER__"] = cnf["Dinstall::BugServer"]
     bcc = []
-    if cnf.Find("Dinstall::Bcc") != "":
-        bcc.append(cnf["Dinstall::Bcc"])
-    if cnf.Find("Rm::Bcc") != "":
-        bcc.append(cnf["Rm::Bcc"])
-    if bcc:
-        Subst["__BCC__"] = "Bcc: " + ", ".join(bcc)
-    else:
-        Subst["__BCC__"] = "X-Filler: 42"
     Subst["__CC__"] = "X-DAK: dak rm"
     if carbon_copy:
         Subst["__CC__"] += "\nCc: " + ", ".join(carbon_copy)
@@ -610,6 +602,14 @@ def main ():
 
     # Send the bug closing messages
     if Options["Done"]:
+        if cnf.Find("Dinstall::Bcc") != "":
+            bcc.append(cnf["Dinstall::Bcc"])
+        if cnf.Find("Rm::Bcc") != "":
+            bcc.append(cnf["Rm::Bcc"])
+        if bcc:
+            Subst["__BCC__"] = "Bcc: " + ", ".join(bcc)
+        else:
+            Subst["__BCC__"] = "X-Filler: 42"
         summarymail = "%s\n------------------- Reason -------------------\n%s\n" % (summary, Options["Reason"])
         summarymail += "----------------------------------------------\n"
         Subst["__SUMMARY__"] = summarymail
@@ -623,20 +623,31 @@ def main ():
             utils.send_mail(mail_message)
 
     # close associated bug reports
+    # FIXME:  We should also close possible WNPP bugs for that package, but
+    # currently there's no sane way to determine them
     if Options["Do-Close"]:
         if len(versions) == 1:
             Subst["__VERSION__"] = versions[0]
         else:
             utils.fubar("Closing bugs with multiple package versions is not supported.  Do it yourself.")
+        if bcc:
+            Subst["__BCC__"] = "Bcc: " + ", ".join(bcc)
+        else:
+            Subst["__BCC__"] = "X-Filler: 42"
         whereami = utils.where_am_i()
         Archive = cnf.SubTree("Archive::%s" % (whereami))
         # at this point, I just assume, that the first closed bug gives
         # some usefull information on why the package got removed
         Subst["__BUG_NUMBER__"] = utils.split_args(Options["Done"])[0]
-        for bug in bts.get_bugs('src', package, 'status', 'open'):
-            Subst["__BUG_NUMBER_ALSO__"] += bug + "-done@" + cnf["Dinstall::BugServer"] + ","
+        if len(sources) > 1:
+            utils.fubar("Closing bugs for multiple source pakcages is not supported.  Do it yourself.")
+        Subst["__BUG_NUMBER_ALSO__"] = ""
+        Subst["__SOURCE__"] = source.split("_", 1)[0]
+        for bug in bts.get_bugs('src', source.split("_", 1)[0], 'status', 'open'):
+            Subst["__BUG_NUMBER_ALSO__"] += str(bug) + "-done@" + cnf["Dinstall::BugServer"] + ","
         mail_message = utils.TemplateSubst(Subst,cnf["Dir::Templates"]+"/rm.bug-close-related")
-        utils.send_mail(mail_message)
+        if Subst["__BUG_NUMBER_ALSO__"]:
+            utils.send_mail(mail_message)
 
 #######################################################################################