Check for incorrect changelog extensions

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
Dave Rodgman 2023-10-02 16:40:57 +01:00
parent 0673ed2e93
commit 3901e2ef92

View file

@ -60,6 +60,11 @@ class LostContent(Exception):
message = ('Lost content from {}: "{}"'.format(filename, line))
super().__init__(message)
class FilePathError(Exception):
def __init__(self, filenames):
message = ('Changelog filenames do not end with .txt: {}'.format(", ".join(filenames)))
super().__init__(message)
# The category names we use in the changelog.
# If you edit this, update ChangeLog.d/README.md.
STANDARD_CATEGORIES = (
@ -448,14 +453,23 @@ def list_files_to_merge(options):
files_to_merge.sort(key=EntryFileSortKey)
return files_to_merge
def check_extensions(options):
files = glob.glob(os.path.join(options.dir, '*'))
files = {x for x in files if not x.endswith(".txt")}
files.discard("ChangeLog.d/00README.md")
if files:
raise FilePathError(files)
def merge_entries(options):
"""Merge changelog entries into the changelog file.
Read the changelog file from options.input.
Check that all entries have a .txt extension
Read entries to merge from the directory options.dir.
Write the new changelog to options.output.
Remove the merged entries if options.keep_entries is false.
"""
check_extensions(options)
with open(options.input, 'r', encoding='utf-8') as input_file:
changelog = ChangeLog(input_file, TextChangelogFormat)
files_to_merge = list_files_to_merge(options)