import csv
import datetime
from string import Template
+from optparse import OptionParser
username = 'xclaesse'
upload_server = 'master.gnome.org'
def parse_commit(self, ref, author, date, message):
p1 = message.rfind('(')
p2 = message.rfind (')')
- if len(message) - p2 <= 2:
+ if len(message) - p2 <= 2 and \
+ message[p1+1:].find('#') == -1:
author = message[p1+1:p2]
message = message[:p1]
msg = message.lower()
- if msg.find('translation') != -1 and\
- msg.find('updated') != -1:
+ if msg.find('translation') != -1 and \
+ (msg.find('added') != -1 or \
+ msg.find('updated') != -1):
self.translations += ' - ' + message + ' (' + author + ').\n'
elif message.find('#') != -1:
p1 = message.find('#')
while p1 != -1:
bug = Bug()
- p2 = message.find(' ', p1)
+ p2 = p1 + 1
+ while p2 < len (message) and \
+ message[p2].isdigit():
+ p2 = p2 + 1
bug.number = message[p1+1:p2]
bug.author = author
self.bug_commits.append(bug)
cmd = 'ssh %s@%s install-module -u %s' % (username, upload_server, tarball)
self.exec_cmd(cmd)
+ def send_email(self):
+ notes = self.get_release_notes()
+ cmd = 'xdg-email ' \
+ ' --cc telepathy@lists.freedesktop.org' \
+ ' --subject "ANNOUNCE: Empathy %s"' \
+ ' --body "%s"' \
+ ' gnome-announce-list@gnome.org' % (self.package_version,
+ notes.replace('"', '\\"'))
+ self.exec_cmd(cmd)
+
def release(self):
self.make_tag()
self.upload_tarball()
- print self.get_release_notes()
+ self.send_email()
+
+if __name__ == '__main__':
+ p = Project()
+ parser = OptionParser()
+ parser.add_option("-n", "--print-news", action="store_true",\
+ dest="print_news", help="Generate and print news")
+ parser.add_option("-p", "--print-notes", action="store_true",\
+ dest="print_notes", help="Generate and print the release notes")
+ parser.add_option("-w", "--write-news", action="store_true",\
+ dest="write_news", help="Generate and write news into the NEWS file")
+ parser.add_option("-r", "--release", action="store_true",\
+ dest="release", help="Release the tarball")
+ parser.add_option("-e", "--email", action="store_true",\
+ dest="email", help="Send the release announce email")
+
+ (options, args) = parser.parse_args ()
+ if (options.print_news):
+ print p.generate_news ()
+ if (options.print_notes):
+ print p.get_release_notes ()
+ if (options.write_news):
+ p.write_news ()
+ if (options.release):
+ p.release ()
+ if (options.email):
+ p.send_email ()
-p = Project()
-#print p.generate_news()
-#p.write_news()
-#p.release()