aboutsummaryrefslogtreecommitdiff
path: root/contrib/pydiffer.py.in
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/pydiffer.py.in
parenta669108f0f2d602bfea9c7a8132fb761388493ad (diff)
downloadgnunet-3e578a363db4b1b5840c06a9ac2ac54a68fb6657.tar.gz
gnunet-3e578a363db4b1b5840c06a9ac2ac54a68fb6657.zip
Use Python batteries in fs_rec test
Diffstat (limited to 'contrib/pydiffer.py.in')
-rw-r--r--contrib/pydiffer.py.in39
1 files changed, 39 insertions, 0 deletions
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 ()