-
-
Save lygaret/320957 to your computer and use it in GitHub Desktop.
recursive diff
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import os | |
import sys | |
from os.path import join | |
expectedFiles = [] | |
actualFiles = [] | |
returnValue = 0 | |
expectedFolder = sys.argv[1] | |
actualFolder = sys.argv[2] | |
def buildNames(d, array): | |
for filename in os.listdir(d): | |
if os.path.isfile(join(d, filename)): | |
array.append((filename, join(d, filename))) | |
else: | |
buildNames(join(d, filename), array) | |
def compareFiles(filename1, filename2): | |
try: | |
f = open(filename1, 'r') | |
g = open(filename2, 'r') | |
for lines in zip(f.readlines(), g.readlines()): | |
if lines[0] != lines[1]: | |
print "Files Different" | |
return False | |
return True | |
except IOError as (errno, strerror): | |
print "Couldn't read the files! IO Error({0}): {1}" % (errno, strerror) | |
finally: | |
f.close() | |
g.close() | |
buildNames(expectedFolder, expectedFiles) | |
buildNames(actualFolder, actualFiles) | |
print expectedFiles | |
print actualFiles | |
for ((expected, x), (actual, y)) in zip(expectedFiles, actualFiles): | |
if expected != actual: | |
print "Directories Different" | |
sys.exit(-1) | |
returnValue = 0 | |
for combined in zip(expectedFiles, actualFiles): | |
print combined[0][1] | |
if not compareFiles(combined[0][1], combined[1][1]): | |
returnValue = -1 | |
sys.exit(returnValue) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment