mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Add collation/splitting support to sortChanges script
This commit is contained in:
@@ -5,8 +5,6 @@
|
||||
"""This script sorts a bunch of changes files listed on its command
|
||||
line into roughly the order in which they should appear in the
|
||||
changelog.
|
||||
|
||||
TODO: collation support.
|
||||
"""
|
||||
|
||||
import re
|
||||
@@ -19,7 +17,7 @@ def fetch(fn):
|
||||
return s
|
||||
|
||||
def score(s,fname=None):
|
||||
m = re.match(r'^ +o (.*)', s)
|
||||
m = re.match(r'^ +o ([^\n]*)\n(.*)', s, re.M|re.S)
|
||||
if not m:
|
||||
print >>sys.stderr, "Can't score %r from %s"%(s,fname)
|
||||
lw = m.group(1).lower()
|
||||
@@ -38,12 +36,47 @@ def score(s,fname=None):
|
||||
else:
|
||||
score = 100
|
||||
|
||||
return (score, lw, s)
|
||||
return (score, lw, m.group(1), m.group(2))
|
||||
|
||||
def splitChanges(s):
|
||||
this_entry = []
|
||||
for line in s.split("\n"):
|
||||
if line.strip() == "":
|
||||
continue
|
||||
if re.match(r" +o ", line):
|
||||
if len(this_entry) > 2:
|
||||
yield "".join(this_entry)
|
||||
curHeader = line
|
||||
this_entry = [ curHeader, "\n" ]
|
||||
continue
|
||||
elif re.match(r" +- ", line):
|
||||
if len(this_entry) > 2:
|
||||
yield "".join(this_entry)
|
||||
this_entry = [ curHeader, "\n" ]
|
||||
|
||||
this_entry.append(line)
|
||||
this_entry.append("\n")
|
||||
|
||||
if len(this_entry) > 2:
|
||||
yield "".join(this_entry)
|
||||
|
||||
|
||||
changes = [ score(fetch(fn),fn) for fn in sys.argv[1:] if not fn.endswith('~') ]
|
||||
changes = []
|
||||
|
||||
for fn in sys.argv[1:]:
|
||||
if fn.endswith('~'):
|
||||
continue
|
||||
for change in splitChanges(fetch(fn)):
|
||||
changes.append(score(change,fn))
|
||||
|
||||
changes.sort()
|
||||
|
||||
for _, _, s in changes:
|
||||
print s
|
||||
last_lw = "this is not a header"
|
||||
for _, lw, header, rest in changes:
|
||||
if lw == last_lw:
|
||||
print rest,
|
||||
else:
|
||||
print
|
||||
print " o",header
|
||||
print rest,
|
||||
last_lw = lw
|
||||
|
||||
Reference in New Issue
Block a user