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

[dak/master] Actualy close bugs associated to removed packaged on request



---
 dak/rm.py              |   34 ++++++++++++++++++++++++++++++++++
 templates/rm.bug-close |    2 +-
 2 files changed, 35 insertions(+), 1 deletions(-)

diff --git a/dak/rm.py b/dak/rm.py
index 536e6dd..ada3c02 100755
--- 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()
 
diff --git a/templates/rm.bug-close b/templates/rm.bug-close
index 78addd2..b23fd6f 100644
--- a/templates/rm.bug-close
+++ b/templates/rm.bug-close
@@ -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__:
-- 
1.5.6.5



Reply to: