#!/usr/bin/env python3

"""
Generates a more user-readable changelog from changelog.toml.
"""

import textwrap
import tomlkit

with open("changelog.toml", "r") as f:
    data = tomlkit.load(f)

print("Changelog")
print("---------")
print()
print("<!-- Do not edit. This file is automatically generated from changelog.toml.-->")
print()

for version, row in data.items():
    changes = row["changes"]
    print(f"**{version} ({row['date']})**")
    print()

    if "description" in row:
        description = row["description"].strip()
        for line in textwrap.wrap(description, 80):
            print(line)
        print()

    for c in changes:
        lines = textwrap.wrap(c, 78)
        initial = True
        for line in lines:
            if initial:
                print("* " + line)
                initial = False
            else:
                print("  " + line)
    print()
