[Checkins] SVN: zope.repositorypolicy/trunk/s - added a new script that sends out a summary email listing

Jens Vagelpohl jens at dataflake.org
Thu Mar 18 13:31:06 EDT 2010


Log message for revision 110058:
  - added a new script that sends out a summary email listing 
    faulty branches only. This email is suitable for mailing 
    list distribution, it is at most 20KB in size.
  

Changed:
  U   zope.repositorypolicy/trunk/setup.py
  U   zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py

-=-
Modified: zope.repositorypolicy/trunk/setup.py
===================================================================
--- zope.repositorypolicy/trunk/setup.py	2010-03-18 15:49:21 UTC (rev 110057)
+++ zope.repositorypolicy/trunk/setup.py	2010-03-18 17:31:05 UTC (rev 110058)
@@ -23,6 +23,7 @@
         [console_scripts]
         zope-org-check-repos = zope.repositorypolicy.repository:main
         zope-org-check-repos-mail = zope.repositorypolicy.repository:main_mail
+        zope-org-check-repos-summarymail = zope.repositorypolicy.repository:main_summarymail
         zope-org-check-project = zope.repositorypolicy.project:main
         zope-org-fix-project = zope.repositorypolicy.copyright:main
     """)

Modified: zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py
===================================================================
--- zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py	2010-03-18 15:49:21 UTC (rev 110057)
+++ zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py	2010-03-18 17:31:05 UTC (rev 110058)
@@ -95,3 +95,40 @@
             (sender_address, target_address, subject, body))
     mailserver.sendmail(sender_address, [target_address], msg)
     mailserver.quit()
+
+SUMMARY_TEMPLATE = """\
+The packages and branches listed below have failed one or 
+more repository policy checks. To see more detailed output, 
+use the "zope.repositorypolicy" package and run its script
+"zope-org-check-project" against a checkout of the branch 
+in question.
+
+%s
+
+"""
+
+def main_summarymail():
+    smtp_host, sender_address, target_address = sys.argv[1:]
+    stamp = datetime.datetime.now().isoformat()
+    branches = set([])
+
+    checker = Checker()
+    for entry in checker.run():
+        branches.add(entry.split(':')[0])
+
+    if branches:
+        subject = 'FAILURE: Repository policy check failed on %i branches' % len(branches)
+    else:
+        subject = 'OK: Repository policy check found no errors'
+
+    branches = list(branches)
+    branches.sort()
+
+    body = SUMMARY_TEMPLATE % '\n'.join(branches)
+
+    mailserver = smtplib.SMTP(smtp_host)
+    msg = ('From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s' %
+            (sender_address, target_address, subject, body))
+    mailserver.sendmail(sender_address, [target_address], msg)
+    mailserver.quit()
+



More information about the checkins mailing list