From 8727eb9e75b20bbdafc06ef6755f7fdd864ad726 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 25 Apr 2014 02:43:19 -0400 Subject: [PATCH] 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 01fd1b717d..fc995758b2 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 6e3b8045b4..1230053226 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')