X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Frm.py;h=f4452c6f0c8042aad080859df367b4e139c0308c;hb=9f523eb071132709bcb68234f9a8bd7c22d3565c;hp=c0f6810dd1baf27233ae32760897203d225c4031;hpb=64d62bfb23973c73c968b8759cbaddf97ced1ddc;p=dak.git diff --git a/dak/rm.py b/dak/rm.py index c0f6810d..f4452c6f 100755 --- 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) #######################################################################################