Subversion でコミットメールを出す post-commit スクリプト
日本語メールは ISO-2022-JP に限るの会編集(ぉ). 今見直すと変数名とか微妙なところがあるけどキニシナイ.
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys import smtplib smtpserver = 'localhost' fromaddr = 'svn-admin@hoge.local' toaddrs = 'svn-ml@hoge.local' svnlookcomm = 'LANG=ja_JP.UTF-8 /usr/local/bin/svnlook' def svnlook(verb, repos, rev): p = os.popen('%s %s %s -r %s' % (svnlookcomm, verb, repos, rev)) result = p.read() p.close() return result.rstrip('\r\n').decode('utf-8').encode('iso-2022-jp') repos = sys.argv[1] rev = sys.argv[2] author = svnlook('author', repos, rev) or 'anonymous' date = svnlook('date', repos, rev).split('(')[0][:-1] changed = svnlook('changed', repos, rev) log = svnlook('log', repos, rev) subject = '%s r%s' % (repos.split('/')[-1], rev) body = '''%s, %s, r%s log: %s changed: %s''' % (date, author, rev, log, changed) msg = '''From: %s To: %s Subject: %s MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="ISO-2022-JP" %s''' server = smtplib.SMTP(smtpserver) server.sendmail(fromaddr, toaddrs, msg % (fromaddr, toaddrs, subject, body)) server.quit()