3
from collections import defaultdict
8
COMMIT='New upstream release.'
9
MSG=' * New upstream release.\n'
10
changelog_trail = re.compile(r'^ --')
11
changelog_multimaint = re.compile(r'^\s*\[\s*(\b[^]]*\b)\s*\]\s*$')
12
changelog_empty = re.compile(r'^\s*$')
13
entry = re.compile(r' \* New upstream release\.')
16
for path in subprocess.check_output(['arriero', 'list', '-f', 'path'] +
17
sys.argv[1:]).split('\n'):
21
output = subprocess.check_output(['git', 'log', 'HEAD~1..HEAD',
22
'--oneline'], cwd=path)
23
last = re.sub('^[^\s]+\s+', '', output.rstrip('\n'))
27
filename = '%s/debian/changelog' % (path,)
33
maintainers = defaultdict(set)
37
for i, line in enumerate(lines):
38
first_block.append(line)
41
m = changelog_multimaint.match(line)
43
maintainer = (m.group(1), i)
44
elif changelog_empty.match(line):
47
maintainers[maintainer].add(i)
50
entries.append((i, maintainer))
52
if changelog_trail.match(line):
54
skip = len(first_block)
62
maintainers[e[1]].remove(e[0])
63
if not maintainers[e[1]]:
66
if i > 2 and changelog_empty.match(first_block[i - 1]):
69
f = open(filename,'w')
72
for i, line in enumerate(first_block):
75
if changelog_multimaint.match(line) and i not in delete:
80
for line in lines[skip:]:
84
subprocess.call(['git', 'commit', '-a', '--amend', '-m',
85
'New upstream release.'], cwd=path)