Parcourir la source

format_changelog.py now formats the first section, in-place.

Nick Mathewson il y a 10 ans
Parent
commit
8727eb9e75
2 fichiers modifiés avec 21 ajouts et 2 suppressions
  1. 0 1
      ChangeLog
  2. 21 1
      contrib/format_changelog.py

+ 0 - 1
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

+ 21 - 1
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')