| #!/usr/bin/env python3 | 
 |  | 
 | import os | 
 | import argparse | 
 |  | 
 | from yaml import load, Loader | 
 |  | 
 | SOURCE_FILE_TYPES = [ | 
 |     "verilogSource", | 
 |     "systemVerilogSource", | 
 | ] | 
 |  | 
 |  | 
 | def get_sources(eda_yml): | 
 |     eda_yml_path = os.path.realpath(eda_yml) | 
 |     current_dir = os.path.dirname(eda_yml_path) | 
 |  | 
 |     with open(eda_yml_path) as f: | 
 |         data = load(f, Loader=Loader) | 
 |         files = data["files"] | 
 |  | 
 |     for src in files: | 
 |         if "file_type" not in src.keys(): | 
 |             continue | 
 |  | 
 |         if src["file_type"] in SOURCE_FILE_TYPES: | 
 |             file_path = os.path.realpath( | 
 |                 os.path.join(current_dir, src["name"]) | 
 |             ) | 
 |             basename = os.path.basename(file_path) | 
 |             print(basename) | 
 |  | 
 |  | 
 | if __name__ == "__main__": | 
 |     parser = argparse.ArgumentParser( | 
 |         description="Get sources from an EDA YAML file produced by fusesoc" | 
 |     ) | 
 |     parser.add_argument("eda_yml", help="An EDA YAML produced by fusesoc") | 
 |  | 
 |     args = parser.parse_args() | 
 |     get_sources(args.eda_yml) |