#!/usr/bin/env python3
import os.path
from typing import Any, IO
import yaml


def main():
    d = os.path.join(os.path.dirname(__file__),
                     "..", "docs", "reference")
    d = os.path.normpath(d)
    print(f"generating {d}/readme.md")

    f = open(os.path.join(d, "settings.yaml"))
    doc = yaml.full_load(f)
    f.close()

    f = open(os.path.join(os.path.dirname(__file__),
                          "..", "docs", "reference", "readme.md"), "w")
    f.write(f"{doc['preamble']}\n")
    write_setting(f, 1, doc)
    f.write(f"{doc['postamble']}")
    f.close()


def write_setting(w, depth, setting):
    if 'name' in setting:
        w.write(f"{'#' * depth} {setting.get('name', '')}\n")

    if 'attributes' in setting:
        w.write(f"{setting.get('attributes','')}\n")

    if 'doc' in setting:
        w.write(f"{setting.get('doc', '')}\n")

    w.write("\n")

    for subsetting in setting.get('settings', []):
        write_setting(w, depth+1, subsetting)


if __name__ == "__main__":
    main()