[tor-commits] [tor/master] format_changelog.py now formats the first section, in-place.

nickm at torproject.org nickm at torproject.org
Fri Apr 25 06:44:55 UTC 2014


commit 8727eb9e75b20bbdafc06ef6755f7fdd864ad726
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Apr 25 02:43:19 2014 -0400

    format_changelog.py now formats the first section, in-place.
---
 ChangeLog                   |    1 -
 contrib/format_changelog.py |   22 +++++++++++++++++++++-
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 01fd1b7..fc99575 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -267,7 +267,6 @@ Changes in version 0.2.5.4-alpha - 2014-04-??
       Resolves ticket 11070.
 
 
-
 Changes in version 0.2.5.3-alpha - 2014-03-22
   Tor 0.2.5.3-alpha includes all the fixes from 0.2.4.21. It contains
   two new anti-DoS features for Tor relays, resolves a bug that kept
diff --git a/contrib/format_changelog.py b/contrib/format_changelog.py
index 6e3b804..1230053 100755
--- a/contrib/format_changelog.py
+++ b/contrib/format_changelog.py
@@ -9,6 +9,7 @@
 # To run it, pipe a section of the changelog (starting with "Changes
 # in Tor 0.x.y.z-alpha" through the script.)
 
+import os
 import re
 import sys
 import textwrap
@@ -19,6 +20,7 @@ TP_BLANK = 2
 TP_SECHEAD = 3
 TP_ITEMFIRST = 4
 TP_ITEMBODY = 5
+TP_END = 6
 
 def head_parser(line):
     if re.match(r'^[A-Z]', line):
@@ -39,6 +41,8 @@ def body_parser(line):
         return TP_ITEMBODY
     elif re.match(r'^\s*$', line):
         return TP_BLANK
+    elif re.match(r'^Changes in', line):
+        return TP_END
     else:
         print "Weird line %r"%line
 
@@ -129,13 +133,29 @@ class ChangeLog(object):
 CL = ChangeLog()
 parser = head_parser
 
+sys.stdin = open('ChangeLog', 'r')
+
 for line in sys.stdin:
     line = line.rstrip()
     tp = parser(line)
 
-    CL.addLine(tp,line)
     if tp == TP_SECHEAD:
         parser = body_parser
+    elif tp == TP_END:
+        nextline = line
+        break
+
+    CL.addLine(tp,line)
 
 CL.lint()
+
+sys.stdout = open('ChangeLog.new', 'w')
+
 CL.dump()
+
+print nextline
+
+for line in sys.stdin:
+    sys.stdout.write(line)
+
+os.rename('ChangeLog.new', 'ChangeLog')



More information about the tor-commits mailing list