#!@PYTHON@
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 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 ()
