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(
11        description="Callout code generator")
12
13    parser.add_argument(
14        '-i', '--callouts_yaml', dest='callouts_yaml',
15        default='callouts-example.yaml', help='input callouts yaml')
16    args = parser.parse_args()
17
18    with open(os.path.join(script_dir, args.callouts_yaml), 'r') as fd:
19        calloutsMap = yaml.safe_load(fd)
20
21        # Render the mako template
22        template = os.path.join(script_dir, 'callouts-gen.mako.hpp')
23        t = Template(filename=template)
24        with open('callouts-gen.hpp', 'w') as fd:
25            fd.write(
26                t.render(
27                    calloutsMap=calloutsMap))
28
29
30if __name__ == '__main__':
31    script_dir = os.path.dirname(os.path.realpath(__file__))
32    main()
33