#!/usr/bin/env python # # Go through the Tests directory and its subdirectories # copying the latest versions of the test outputs into # the Reference directories. # import os, sys ignore_names = [".DS_Store", "Icon\r"] def copy_file(from_path, to_path): # We copy the contents from one file to the other # so as to preserve metadata on the Mac. #print from_path, "-->", to_path f = open(from_path) g = open(to_path, "w+") g.write(f.read()) f.close() g.close() def update_references(out_dir, ref_dir): for name in os.listdir(ref_dir): if name not in ignore_names: out_file = os.path.join(out_dir, name) ref_file = os.path.join(ref_dir, name) if os.path.isfile(out_file): print "Updating", name copy_file(out_file, ref_file) def update_references_in_dir(dir): print "Updating references in", dir for name in os.listdir(dir): if name <> "Reference" and not name.startswith("("): item_path = os.path.join(dir, name) if os.path.isdir(item_path): update_references_in_dir(item_path) ref_dir = os.path.join(dir, "Reference") if os.path.isdir(ref_dir): update_references(dir, ref_dir) def main(): bin_dir = os.path.dirname(sys.argv[0]) source_dir = os.path.dirname(bin_dir) tests_dir = os.path.join(source_dir, "Tests") update_references_in_dir(tests_dir) if __name__ == "__main__": main()