aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorLRN <lrn1986@gmail.com>2012-07-22 13:47:14 +0000
committerLRN <lrn1986@gmail.com>2012-07-22 13:47:14 +0000
commit3e578a363db4b1b5840c06a9ac2ac54a68fb6657 (patch)
tree8ec86a2a71759f4cf0de97043aa5343cc68c3fc9 /contrib
parenta669108f0f2d602bfea9c7a8132fb761388493ad (diff)
downloadgnunet-3e578a363db4b1b5840c06a9ac2ac54a68fb6657.tar.gz
gnunet-3e578a363db4b1b5840c06a9ac2ac54a68fb6657.zip
Use Python batteries in fs_rec test
Diffstat (limited to 'contrib')
-rw-r--r--contrib/Makefile.am2
-rw-r--r--contrib/pydiffer.py.in39
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
15noinst_SCRIPTS = \ 15noinst_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
37do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' 39do_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@
2import os
3import sys
4import difflib
5import filecmp
6
7def 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
15def 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
29def dcdiff (old, new):
30 dc = filecmp.dircmp (old, new)
31 diff = dc_getdiff (dc, old, new)
32 return diff
33
34def main ():
35 for l in dcdiff (sys.argv[1], sys.argv[2]):
36 print (l)
37
38if __name__ == '__main__':
39 main ()