File: update_references

package info (click to toggle)
pyrex 0.9.3-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,140 kB
  • ctags: 2,220
  • sloc: python: 10,912; ansic: 3,111; makefile: 103; lisp: 12
file content (49 lines) | stat: -rwxr-xr-x 1,347 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/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()