43 lines
1.1 KiB
Python
Executable File
43 lines
1.1 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import os
|
|
import sys
|
|
|
|
from subprocess import check_output
|
|
|
|
droot = 'debian'
|
|
if len(sys.argv) > 1:
|
|
droot = sys.argv[1]
|
|
|
|
debian = 'debian.master'
|
|
if len(sys.argv) > 2:
|
|
debian = sys.argv[2]
|
|
|
|
rules = os.path.join(droot, 'rules')
|
|
changelog = os.path.join(debian, 'changelog')
|
|
changelog_new = os.path.join(debian, 'changelog.new')
|
|
|
|
# Generate the list of new changes
|
|
changes = check_output(['make', '-s', '-f', rules, 'printchanges']).decode('UTF-8')
|
|
|
|
# Insert the new changes into the changelog
|
|
with open(changelog) as orig, open(changelog_new, 'w') as new:
|
|
printed = False
|
|
skip_newline = False
|
|
for line in orig:
|
|
if line.startswith(' CHANGELOG: '):
|
|
if not printed:
|
|
printed = True
|
|
if changes == '':
|
|
skip_newline = True
|
|
continue
|
|
new.write(changes)
|
|
else:
|
|
if skip_newline and line.strip() == '':
|
|
skip_newline = False
|
|
continue
|
|
new.write(line)
|
|
|
|
# Replace the original changelog with the new one
|
|
os.rename(changelog_new, changelog)
|