]> git.0d.be Git - empathy.git/blobdiff - release.py
use tp_channel_get_identifier instead of inspecting room handle
[empathy.git] / release.py
index 0a88673ace461915e0222942a98048faf110c11f..9f9f677520fca11b0b8b40b14172b7a425f51603 100755 (executable)
@@ -6,6 +6,7 @@ import urllib
 import csv
 import datetime
 from string import Template
+from optparse import OptionParser
 
 username = 'xclaesse'
 upload_server = 'master.gnome.org'
@@ -136,19 +137,24 @@ class Project:
        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)
@@ -269,12 +275,44 @@ class Project:
                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()