1#!/usr/bin/env python3
2
3import os
4import yaml
5from mako.template import Template
6import argparse
7
8
9def main():
10    parser = argparse.ArgumentParser(description="Callout code generator")
11
12    parser.add_argument(
13        "-i",
14        "--callouts_yaml",
15        dest="callouts_yaml",
16        default=os.path.join(script_dir, "callouts-example.yaml"),
17        help="input callouts yaml",
18    )
19    parser.add_argument(
20        "-o",
21        "--output",
22        dest="output",
23        default="callouts-gen.hpp",
24        help="output file name (default: callouts-gen.hpp)",
25    )
26
27    args = parser.parse_args()
28
29    with open(args.callouts_yaml, "r") as fd:
30        calloutsMap = yaml.safe_load(fd)
31
32        # Render the mako template
33        template = os.path.join(script_dir, "callouts-gen.mako.hpp")
34        t = Template(filename=template)
35        with open(args.output, "w") as fd:
36            fd.write(t.render(calloutsMap=calloutsMap))
37
38
39if __name__ == "__main__":
40    script_dir = os.path.dirname(os.path.realpath(__file__))
41    main()
42