X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fannounce.py;h=e784df03619d05a7346728cd255fee4f7f17498d;hb=391f5ec09a119131dc846b796ca791f4cecc69e4;hp=1b207b4e7700ac3eeddfd4c2af6014c1661d14cc;hpb=22430aa9b94fb9a2a375f661a9ca58eae29b2f61;p=dak.git diff --git a/daklib/announce.py b/daklib/announce.py index 1b207b4e..e784df03 100644 --- a/daklib/announce.py +++ b/daklib/announce.py @@ -47,6 +47,8 @@ class ProcessedUpload(object): # program program = "unknown-program" + warnings = [] + def _subst_for_upload(upload): cnf = Config() @@ -79,6 +81,7 @@ def _subst_for_upload(upload): '__SOURCE__': upload.source, '__VERSION__': upload.version, '__ARCHITECTURE__': upload.architecture, + '__WARNINGS__': '\n'.join(upload.warnings), } override_maintainer = cnf.get('Dinstall::OverrideMaintainer') @@ -87,9 +90,13 @@ def _subst_for_upload(upload): return subst +def _whitelists(upload): + return [ s.mail_whitelist for s in upload.suites ] + def announce_reject(upload, reason, rejected_by=None): cnf = Config() subst = _subst_for_upload(upload) + whitelists = _whitelists(upload) automatic = rejected_by is None @@ -100,14 +107,15 @@ def announce_reject(upload, reason, rejected_by=None): subst['__REJECTOR_ADDRESS__'] = rejected_by if not automatic: - subst['__BCC__'] = '{0}\nBcc: {1}'.format(subst['__BCC__'], cnf['Dinstall::MyEmailAddress']) + subst['__BCC__'] = '{0}\nBcc: {1}'.format(subst['__BCC__'], subst['__REJECTOR_ADDRESS__']) message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'queue.rejected')) - send_mail(message) + send_mail(message, whitelists=whitelists) def announce_accept(upload): cnf = Config() subst = _subst_for_upload(upload) + whitelists = _whitelists(upload) accepted_to_real_suite = any(suite.policy_queue is None or suite in upload.from_policy_suites for suite in upload.suites) @@ -121,7 +129,7 @@ def announce_accept(upload): subst['__SUITE__'] = ', '.join(suite_names) or '(none)' message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.accepted')) - send_mail(message) + send_mail(message, whitelists=whitelists) if accepted_to_real_suite and upload.sourceful: # senf mail to announce lists and tracking server @@ -134,26 +142,29 @@ def announce_accept(upload): tracking = cnf.get('Dinstall::TrackingServer') if tracking: - announce_list_address = "{0}\n{1}@{2}".format(announce_list_address, upload.source, tracking) + announce_list_address = "{0}\nBcc: {1}@{2}".format(announce_list_address, upload.source, tracking) if len(announce_list_address) != 0: my_subst = subst.copy() my_subst['__ANNOUNCE_LIST_ADDRESS__'] = announce_list_address message = TemplateSubst(my_subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.announce')) - send_mail(message) + send_mail(message, whitelists=whitelists) - if accepted_to_real_suite and upload.sourceful and cnf.find_b('Dinstall::CloseBugs'): + close_bugs_default = cnf.find_b('Dinstall::CloseBugs') + close_bugs = any(s.close_bugs if s.close_bugs is not None else close_bugs_default for s in upload.suites) + if accepted_to_real_suite and upload.sourceful and close_bugs: for bug in upload.bugs: my_subst = subst.copy() my_subst['__BUG_NUMBER__'] = str(bug) message = TemplateSubst(my_subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.bug-close')) - send_mail(message) + send_mail(message, whitelists=whitelists) def announce_new(upload): cnf = Config() subst = _subst_for_upload(upload) + whitelists = _whitelists(upload) message = TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.new')) - send_mail(message) + send_mail(message, whitelists=whitelists)