You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
#!/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()
|