[Checkins] SVN: zope.repositorypolicy/trunk/s Some bug fixes, add ability to sent zope-tests compliant mail.
Christian Theune
ct at gocept.com
Tue Mar 16 10:22:08 EDT 2010
Log message for revision 109985:
Some bug fixes, add ability to sent zope-tests compliant mail.
Changed:
U zope.repositorypolicy/trunk/setup.py
U zope.repositorypolicy/trunk/src/zope/repositorypolicy/project.py
U zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py
-=-
Modified: zope.repositorypolicy/trunk/setup.py
===================================================================
--- zope.repositorypolicy/trunk/setup.py 2010-03-16 13:15:19 UTC (rev 109984)
+++ zope.repositorypolicy/trunk/setup.py 2010-03-16 14:22:07 UTC (rev 109985)
@@ -22,6 +22,7 @@
entry_points="""
[console_scripts]
zope-org-check-repos = zope.repositorypolicy.repository:main
+ zope-org-check-repos-mail = zope.repositorypolicy.repository:main_mail
zope-org-check-project = zope.repositorypolicy.project:main
zope-org-fix-project = zope.repositorypolicy.copyright:main
""")
Modified: zope.repositorypolicy/trunk/src/zope/repositorypolicy/project.py
===================================================================
--- zope.repositorypolicy/trunk/src/zope/repositorypolicy/project.py 2010-03-16 13:15:19 UTC (rev 109984)
+++ zope.repositorypolicy/trunk/src/zope/repositorypolicy/project.py 2010-03-16 14:22:07 UTC (rev 109985)
@@ -64,23 +64,27 @@
def check_egg_metadata(self):
setup = os.path.join(self.working_dir, 'setup.py')
- if os.path.isfile(setup):
- s = subprocess.Popen([sys.executable, setup,
- '--license', '--author'],
- stdout=subprocess.PIPE)
- s.wait()
- metadata = s.stdout.readlines()
- license = metadata[0].strip()
- if license != self.license_name:
- self.log.append(
- 'setup.py: license not declared as "%s" (found: "%s")' %
- (self.license_name, license))
- author = metadata[1].strip()
- if author != self.copyright_holder:
- self.log.append(
- 'setup.py: author not declared as "%s" '
- '(found: "%s")' %
- (self.copyright_holder, author))
+ if not os.path.isfile(setup):
+ return
+ s = subprocess.Popen([sys.executable, setup,
+ '--license', '--author'],
+ stdout=subprocess.PIPE)
+ s.wait()
+ metadata = s.stdout.readlines()
+ if len(metadata) != 2:
+ self.log.append('setup.py: could not extract metadata')
+ return
+ license = metadata[0].strip()
+ if license != self.license_name:
+ self.log.append(
+ 'setup.py: license not declared as "%s" (found: "%s")' %
+ (self.license_name, license))
+ author = metadata[1].strip()
+ if author != self.copyright_holder:
+ self.log.append(
+ 'setup.py: author not declared as "%s" '
+ '(found: "%s")' %
+ (self.copyright_holder, author))
def check_copyright(self):
"""Verifies the copyright assignment to the Zope Foundation
Modified: zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py
===================================================================
--- zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py 2010-03-16 13:15:19 UTC (rev 109984)
+++ zope.repositorypolicy/trunk/src/zope/repositorypolicy/repository.py 2010-03-16 14:22:07 UTC (rev 109985)
@@ -1,11 +1,14 @@
# Copyright (c) 2010 Zope Foundation and Contributors
# See also LICENSE.txt
+import datetime
import os
import re
import shutil
+import smtplib
import subvertpy.client
import subvertpy.ra
+import sys
import tempfile
import zope.repositorypolicy.project
@@ -37,6 +40,11 @@
def list_projects_branches(self):
for project in self.repos.get_dir('/')[0].keys():
+ if not project.startswith('gocept.'):
+ continue
+ print project
+ if project == 'README.txt':
+ continue
top = self.repos.get_dir(project)[0].keys()
if 'trunk' in top:
yield project, 'trunk'
@@ -61,3 +69,32 @@
result = 1
print entry
sys.exit(result)
+
+
+def main_mail():
+ smtp_host, sender_address, target_address, httpbase, logbase = sys.argv[1:]
+
+ stamp = datetime.datetime.now().isoformat()
+ logname = 'report-%s.txt' % stamp
+ log = open(os.path.join(logbase, logname), 'w')
+
+ checker = Checker()
+ errors = 0
+ for entry in checker.run():
+ errors += 1
+ log.write(entry+'\n')
+ log.close()
+
+ if errors:
+ subject = 'FAILURE: Repository policy check found %s errors' % errors
+ else:
+ subject = 'OK: Repository policy check found no errors'
+
+ body = ('The log can be found at %s/%s\r\n\r\n-- \r\n'
+ 'This message was generated automatically.' % (httpbase, logname))
+
+ 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