diff options
author | LRN <lrn1986@gmail.com> | 2012-07-22 13:47:14 +0000 |
---|---|---|
committer | LRN <lrn1986@gmail.com> | 2012-07-22 13:47:14 +0000 |
commit | 3e578a363db4b1b5840c06a9ac2ac54a68fb6657 (patch) | |
tree | 8ec86a2a71759f4cf0de97043aa5343cc68c3fc9 /contrib | |
parent | a669108f0f2d602bfea9c7a8132fb761388493ad (diff) | |
download | gnunet-3e578a363db4b1b5840c06a9ac2ac54a68fb6657.tar.gz gnunet-3e578a363db4b1b5840c06a9ac2ac54a68fb6657.zip |
Use Python batteries in fs_rec test
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/Makefile.am | 2 | ||||
-rw-r--r-- | contrib/pydiffer.py.in | 39 |
2 files changed, 41 insertions, 0 deletions
diff --git a/contrib/Makefile.am b/contrib/Makefile.am index aaab287a8..6a6c1e7ab 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am | |||
@@ -14,6 +14,7 @@ endif | |||
14 | 14 | ||
15 | noinst_SCRIPTS = \ | 15 | noinst_SCRIPTS = \ |
16 | terminate.py \ | 16 | terminate.py \ |
17 | pydiffer.py \ | ||
17 | gnunet_pyexpect.py \ | 18 | gnunet_pyexpect.py \ |
18 | gnunet_janitor.py | 19 | gnunet_janitor.py |
19 | 20 | ||
@@ -32,6 +33,7 @@ EXTRA_DIST = \ | |||
32 | terminate.py.in \ | 33 | terminate.py.in \ |
33 | gnunet_pyexpect.py.in \ | 34 | gnunet_pyexpect.py.in \ |
34 | gnunet_janitor.py.in \ | 35 | gnunet_janitor.py.in \ |
36 | pydiffer.py.in \ | ||
35 | gnunet-gns-import.sh | 37 | gnunet-gns-import.sh |
36 | 38 | ||
37 | do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' | 39 | do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' |
diff --git a/contrib/pydiffer.py.in b/contrib/pydiffer.py.in new file mode 100644 index 000000000..23d546b25 --- /dev/null +++ b/contrib/pydiffer.py.in | |||
@@ -0,0 +1,39 @@ | |||
1 | #!@PYTHON@ | ||
2 | import os | ||
3 | import sys | ||
4 | import difflib | ||
5 | import filecmp | ||
6 | |||
7 | def getdiff (old, new): | ||
8 | diff = [] | ||
9 | with open (old) as a: | ||
10 | with open (new) as b: | ||
11 | for l in difflib.unified_diff (a.read ().splitlines (), b.read ().splitlines ()): | ||
12 | diff.append (l) | ||
13 | return diff | ||
14 | |||
15 | def dc_getdiff (dc, old, new): | ||
16 | diff = [] | ||
17 | for f in dc.left_only: | ||
18 | diff.append ("Only in {}: {}".format (old, f)) | ||
19 | for f in dc.right_only: | ||
20 | diff.append ("Only in {}: {}".format (new, f)) | ||
21 | for f in dc.diff_files: | ||
22 | r = getdiff (os.path.join (old, f), os.path.join (new, f)) | ||
23 | diff.extend (r) | ||
24 | for dn, dc in dc.subdirs.items (): | ||
25 | r = dc_getdiff (dc, os.path.join (old, dn), os.path.join (new, dn)) | ||
26 | diff.extend (r) | ||
27 | return diff | ||
28 | |||
29 | def dcdiff (old, new): | ||
30 | dc = filecmp.dircmp (old, new) | ||
31 | diff = dc_getdiff (dc, old, new) | ||
32 | return diff | ||
33 | |||
34 | def main (): | ||
35 | for l in dcdiff (sys.argv[1], sys.argv[2]): | ||
36 | print (l) | ||
37 | |||
38 | if __name__ == '__main__': | ||
39 | main () | ||