1#!/bin/env python3 2 3import argparse 4import jinja2 5import os 6import yaml 7 8def get_device_type(arch, config_file): 9 with open(config_file, "r") as stream: 10 try: 11 config = yaml.safe_load(stream) 12 return config[arch]['device_type'] 13 except yaml.YAMLError as exc: 14 print(exc) 15 16def main(): 17 argparser = argparse.ArgumentParser() 18 argparser.add_argument('--template', help='Input template file', required=True) 19 argparser.add_argument('--test-branch', help='The branch being tested', default='main') 20 argparser.add_argument('--test-repo', help='The repository being tested', required=True) 21 argparser.add_argument('--arch', choices=['amd', 'intel'], help='Architecture', required=True) 22 argparser.add_argument('--ccdec-build-id', help='ccdec build id', required=True) 23 argparser.add_argument('--token', help='Github read token', required=True) 24 argparser.add_argument('--repo', help='Github repository', required=True) 25 argparser.add_argument('--config-file', help='Configuration file', required=True) 26 args = argparser.parse_args() 27 28 env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(args.template)), 29 undefined=jinja2.StrictUndefined) 30 31 template = env.get_template(os.path.basename(args.template)) 32 33 print(template.render(ccdec_build_id=args.ccdec_build_id, arch=args.arch, device_type=get_device_type(args.arch, args.config_file), test_branch=args.test_branch, repo_url=args.test_repo, token=args.token, repo=args.repo)) 34 35 36if __name__ == '__main__': 37 main() 38 39