X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Frm.py;h=6f843cf38da9f2d9d3c8bb9926715b7e0be0a2dc;hb=a3775bb96242c59531b84dc7c7a002c8c884c4f4;hp=536e6ddac96e94bf059270b1671c12ba2562f0ba;hpb=651efe1dd248dac0facf7c9e517efcd419cc0483;p=dak.git diff --git a/dak/rm.py b/dak/rm.py index 536e6dda..6f843cf3 100755 --- a/dak/rm.py +++ b/dak/rm.py @@ -51,6 +51,7 @@ from daklib.dbconn import * from daklib import utils from daklib.dak_exceptions import * from daklib.regexes import re_strip_source_version, re_build_dep_arch +import debianbts as bts ################################################################################ @@ -307,6 +308,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 +619,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()