123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!@PYTHONEXE@
- import os
- import sys
- import difflib
- import filecmp
- def getdiff(old, new):
- diff = []
- with open(old) as a:
- with open(new) as b:
- for l in difflib.unified_diff(
- a.read().splitlines(),
- b.read().splitlines()
- ):
- diff.append(l)
- return diff
- def dc_getdiff(dc, old, new):
- diff = []
- for f in dc.left_only:
- diff.append("Only in {}: {}".format(old, f))
- for f in dc.right_only:
- diff.append("Only in {}: {}".format(new, f))
- for f in dc.diff_files:
- r = getdiff(os.path.join(old, f), os.path.join(new, f))
- diff.extend(r)
- for dn, dc in list(dc.subdirs.items()):
- r = dc_getdiff(dc, os.path.join(old, dn), os.path.join(new, dn))
- diff.extend(r)
- return diff
- def dcdiff(old, new):
- dc = filecmp.dircmp(old, new)
- diff = dc_getdiff(dc, old, new)
- return diff
- def main():
- for l in dcdiff(sys.argv[1], sys.argv[2]):
- print(l)
- if __name__ == '__main__':
- main()
|