]> git.decadent.org.uk Git - dak.git/commitdiff
Actualy close bugs associated to removed packaged on request
authorAlexander Reichle-Schmehl <alexander@schmehl.info>
Sat, 18 Sep 2010 16:01:18 +0000 (18:01 +0200)
committerAlexander Reichle-Schmehl <alexander@schmehl.info>
Sat, 18 Sep 2010 16:01:18 +0000 (18:01 +0200)
dak/rm.py
templates/rm.bug-close

index 536e6ddac96e94bf059270b1671c12ba2562f0ba..ada3c02b284cbaad789924d90e38efbb2063e753 100755 (executable)
--- a/dak/rm.py
+++ b/dak/rm.py
@@ -307,6 +307,8 @@ def main ():
     if Options["Architecture"] and not Options["Partial"]:
         utils.warn("-a/--architecture implies -p/--partial.")
         Options["Partial"] = "true"
+    if Options["Do-Close"] and not Options["Done"]:
+        utils.fubar("No.")
     if Options["Do-Close"] and Options["Binary-Only"]:
         utils.fubar("No.")
     if Options["Do-Close"] and Options["Source-Only"]:
@@ -616,6 +618,38 @@ def main ():
             mail_message = utils.TemplateSubst(Subst,cnf["Dir::Templates"]+"/rm.bug-close")
             utils.send_mail(mail_message)
 
+    # close associated bug reports 
+    if Options["Do-Close"]:
+        Subst = {}
+        Subst["__RM_ADDRESS__"] = cnf["Rm::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)
+        Subst["__SUITE_LIST__"] = suites_list
+        Subst["__SUBJECT__"] = "Removed package(s) from %s" % (suites_list)
+        Subst["__ADMIN_ADDRESS__"] = cnf["Dinstall::MyAdminAddress"]
+        Subst["__DISTRO__"] = cnf["Dinstall::MyDistribution"]
+        Subst["__WHOAMI__"] = whoami
+        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"] + "'"
+            mail_message = utils.TemplateSubst(Subst,cnf["Dir::Templates"]+"/rm.bug-close-related")
+            utils.send_mail(mail_message)
+        
     logfile.write("=========================================================================\n")
     logfile.close()
 
index 78addd22b9ce49b21236822dbddae553b822b90b..b23fd6faa013ed7301467f9ff932577144796695 100644 (file)
@@ -6,7 +6,7 @@ X-Debian: DAK
 MIME-Version: 1.0
 Content-Type: text/plain; charset="utf-8"
 Content-Transfer-Encoding: 8bit
-Subject: Bug#__BUG_NUMBER__: __SUBJECT__
+Subject: __SUBJECT__
 
 We believe that the bug you reported is now fixed; the following
 package(s) have been removed from __SUITE_LIST__: