1*65f8cd37SEddie James#!/usr/bin/env python3 26add0b81SVishwanatha Subbanna 36add0b81SVishwanatha Subbannaimport os 46add0b81SVishwanatha Subbannaimport yaml 56add0b81SVishwanatha Subbannaimport argparse 66add0b81SVishwanatha Subbannafrom mako.template import Template 76add0b81SVishwanatha Subbannaimport contextlib 86add0b81SVishwanatha Subbanna 96add0b81SVishwanatha Subbannaif __name__ == '__main__': 106add0b81SVishwanatha Subbanna script_dir = os.path.dirname(os.path.realpath(__file__)) 116add0b81SVishwanatha Subbanna parser = argparse.ArgumentParser() 126add0b81SVishwanatha Subbanna parser.add_argument( 136add0b81SVishwanatha Subbanna "-f", "--filename", 146add0b81SVishwanatha Subbanna default='occ_sensor.yaml', 156add0b81SVishwanatha Subbanna help="Input File Name") 166add0b81SVishwanatha Subbanna parser.add_argument( 176add0b81SVishwanatha Subbanna "-i", "--input-dir", 186add0b81SVishwanatha Subbanna dest='inputdir', 196add0b81SVishwanatha Subbanna default=script_dir, 206add0b81SVishwanatha Subbanna help="Input directory") 216add0b81SVishwanatha Subbanna 226add0b81SVishwanatha Subbanna args = parser.parse_args() 236add0b81SVishwanatha Subbanna 246add0b81SVishwanatha Subbanna # Default to the one that is in the current. 256add0b81SVishwanatha Subbanna yaml_dir = script_dir 266add0b81SVishwanatha Subbanna yaml_file = os.path.join(yaml_dir, 'occ_sensor.yaml') 276add0b81SVishwanatha Subbanna 286add0b81SVishwanatha Subbanna if args.inputdir: 296add0b81SVishwanatha Subbanna yaml_dir = args.inputdir 306add0b81SVishwanatha Subbanna 316add0b81SVishwanatha Subbanna if args.filename: 326add0b81SVishwanatha Subbanna yaml_file = os.path.join(yaml_dir, args.filename) 336add0b81SVishwanatha Subbanna 346add0b81SVishwanatha Subbanna with open(yaml_file, 'r') as fd: 356add0b81SVishwanatha Subbanna ifile = yaml.safe_load(fd) 366add0b81SVishwanatha Subbanna 376add0b81SVishwanatha Subbanna # Render the mako template 386add0b81SVishwanatha Subbanna template = os.path.join(script_dir, 'occ_sensor.mako.hpp') 396add0b81SVishwanatha Subbanna t = Template(filename=template) 406add0b81SVishwanatha Subbanna with open('occ_sensor.hpp', 'w') as fd: 416add0b81SVishwanatha Subbanna fd.write( 426add0b81SVishwanatha Subbanna t.render( 436add0b81SVishwanatha Subbanna occDict=ifile)) 44