def diff_directories(dirn1,dirn2,verbose=False): """Check one directory against another using MD5 sums This compares one directory against another by computing the MD5 sums for the contents of the first, and then checking these against the second. (Essentially this is automatically performing the compute/verify steps in a single operation.) Note that if there are different files in one directory compared with the other then this function will give different results depending on the order the directories are specified. However for common files the actual MD5 sums will be the same regardless of order. Arguments: dirn1: "source" directory dirn2: "target" directory to be compared to dirn1 verbose: (optional) if True then report status for all files checked; otherwise only report summary Returns: Zero on success, 1 if errors were encountered """ # Set up reporter object reporter = Md5sum.Md5CheckReporter(Md5sum.Md5Checker.md5cmp_dirs(dirn1,dirn2), verbose=verbose) # Summarise if verbose: reporter.summary() return reporter.status
def diff_files(filen1,filen2,verbose=False): """Check that the MD5 sums of two files match This compares two files by computing the MD5 sums for each. Arguments: filen1: "source" file filen2: "target" file to be compared with filen1 verbose: (optional) if True then report status for all files checked; otherwise only report summary Returns: Zero on success, 1 if errors were encountered """ # Set up reporter object reporter = Md5sum.Md5CheckReporter() # Compare files reporter.add_result(filen1,Md5sum.Md5Checker.md5cmp_files(filen1,filen2)) if verbose: if reporter.n_ok: print("OK: MD5 sums match") elif reporter.n_failed: print("FAILED: MD5 sums don't match") else: print("ERROR: unable to compute one or both MD5 sums") return reporter.status
def verify_md5sums(chksum_file,verbose=False): """Check the MD5 sums for all entries specified in a file For all entries in the supplied file, check the MD5 sum is the same as that calculated by the function, and report whether they match or are different. The input file can either be output from this program or from the Linux 'md5sum' program. Arguments: chksum_file: name of the file containing the MD5 sums verbose: (optional) if True then report status for all files checked, plus a summary; otherwise only report failures Returns: Zero on success, 1 if errors were encountered """ # Set up reporter object reporter = Md5sum.Md5CheckReporter(Md5sum.Md5Checker.verify_md5sums(chksum_file), verbose=verbose) # Summarise if verbose: reporter.summary() return reporter.status