jak-project/scripts/update_decomp_reference.py

35 lines
1.1 KiB
Python
Raw Normal View History

import os
import glob
import argparse
import shutil
## Script to update failing _REF.gc files
## Instructions:
## run offline-test with the `--dump-mode` flag set. This generates a "failures" folder.
## update reference like this
## python3 ../scripts/update_decomp_reference.py ./failures ../test/decompiler/reference
def get_goal_files(root_dir):
return [f for file in os.walk(root_dir) for f in glob.glob(os.path.join(file[0], '*.gc'))]
def main():
parser = argparse.ArgumentParser()
parser.add_argument(dest='diff', help='the failures folder')
parser.add_argument(dest='reference', help='the test/decompiler/reference folder')
args = parser.parse_args()
location_map = {os.path.basename(x) : x for x in get_goal_files(args.reference)}
for replacement in get_goal_files(args.diff):
base = os.path.basename(replacement)
if base not in location_map:
print("Could not find file {}".format(base))
exit(-1)
print("replace {} with {}".format(location_map[base], replacement))
shutil.copyfile(replacement, location_map[base])
if __name__ == "__main__":
main()