from __future__ import annotations
import argparse
import sys
from pathlib import Path
def postprocess(path: Path) -> None:
text = path.read_text(encoding="utf-8")
text = text.rstrip("\n") + "\n"
path.write_text(text, encoding="utf-8")
def main() -> None:
parser = argparse.ArgumentParser(
prog="postprocess-changelog",
description="Apply markdown hygiene to a git-cliff generated CHANGELOG.md.",
)
parser.add_argument(
"path",
nargs="?",
default="CHANGELOG.md",
help="Path to CHANGELOG.md (default: CHANGELOG.md)",
)
args = parser.parse_args()
changelog = Path(args.path)
if not changelog.is_file():
print(f"Error: {changelog} not found", file=sys.stderr)
sys.exit(1)
postprocess(changelog)
if __name__ == "__main__":
main()