#!/usr/bin/env python3

import argparse
import os

import yaml
from mako.template import Template


def main():
    parser = argparse.ArgumentParser(
        description="Settings YAML parser and code generator"
    )

    parser.add_argument(
        "-i",
        "--settings_yaml",
        dest="settings_yaml",
        default="settings_example.yaml",
        help="settings yaml file to parse",
    )
    args = parser.parse_args()

    with open(args.settings_yaml, "r") as fd:
        yamlDict = yaml.safe_load(fd)

        # Render the mako template
        template = os.path.join(script_dir, "settings_manager.mako.hpp")
        t = Template(filename=template)
        with open("settings_manager.hpp", "w") as fd:
            fd.write(t.render(settingsDict=yamlDict))


if __name__ == "__main__":
    script_dir = os.path.dirname(os.path.realpath(__file__))
    main()