| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- '''
- Created on 22 nov. 2016
- @author: olivier.massot
- '''
- from ffile import flist
- import sys
- def compare_dirs(source_dir, reference_dir):
- print("** Compare {} to {} **".format(source_dir, reference_dir))
- err_code = 0
- list_source_dir = flist(source_dir, recursive=True, listdirs=False, listfiles=True, complete_paths=True)
-
- list_reference_dir = flist(reference_dir, recursive=True, listdirs=False, listfiles=True, complete_paths=True)
-
- if len(list_source_dir) != len(list_reference_dir):
- print(">> number of dirs / files does not match")
- print("Diff:")
- for name in list( set(list_source_dir) - set(list_reference_dir) ):
- print("+ "+name)
- err_code += 1
- for name in list( set(list_reference_dir) - set(list_source_dir) ):
- print("- "+name)
- err_code += 1
-
-
- for source_path in list_source_dir:
- linecount = 0
- with open(source_path, "rb") as source_file:
-
- ref_path = source_path.replace(source_dir, reference_dir)
- with open(ref_path, "rb") as ref_file:
-
- for line in source_file:
- linecount += 1
-
- if line != ref_file.readline():
- print("> {} : source and ref differ at line {}".format(source_path, linecount))
- err_code += 1
- continue
-
- return err_code
-
- if __name__ == "__main__":
- _, source_dir, reference_dir = sys.argv
- exit_result = compare_dirs(source_dir, reference_dir)
- sys.exit(exit_result)
-
|