SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/usr/bin/env python | |
| 2 | ||
| 3 | - | import sys |
| 3 | + | |
| 4 | import os.path | |
| 5 | ||
| 6 | def md5_for_file(f, block_size=2**20): | |
| 7 | - | files = sys.argv |
| 7 | + | md5 = hashlib.md5() |
| 8 | - | files.pop(0) |
| 8 | + | while True: |
| 9 | data = f.read(block_size) | |
| 10 | - | for file_ in files: |
| 10 | + | if not data: |
| 11 | - | sourceChecksum = os.path.basename(file_) |
| 11 | + | break |
| 12 | md5.update(data) | |
| 13 | print md5.hexdigest() | |
| 14 | return md5 | |
| 15 | ||
| 16 | - | checksum = hashlib.md5() |
| 16 | + | def checksumModacoFile(path): |
| 17 | sourceChecksum = os.path.basename(path) | |
| 18 | - | with open(file_, 'r') as f: |
| 18 | + | |
| 19 | - | chunk = f.read(512) |
| 19 | + | |
| 20 | - | while chunk: |
| 20 | + | |
| 21 | - | checksum.update(chunk) |
| 21 | + | |
| 22 | - | chunk = f.read(512) |
| 22 | + | checksum = None |
| 23 | with open(os.path.abspath(path), 'rb') as f: | |
| 24 | - | if checksum.hexdigest() == sourceChecksum: |
| 24 | + | checksum = md5_for_file(f) |
| 25 | - | print '[PASS]', file_ |
| 25 | + | |
| 26 | - | else: |
| 26 | + | return checksum.hexdigest() == sourceChecksum |
| 27 | - | print '[FAIL]', file_ |
| 27 | + | |
| 28 | if __name__ == "__main__": | |
| 29 | import sys | |
| 30 | ||
| 31 | files = sys.argv | |
| 32 | files.pop(0) # remove this file from list | |
| 33 | ||
| 34 | for file_ in files: | |
| 35 | if checksumModacoFile(file_): | |
| 36 | print '[PASS]', file_ | |
| 37 | else: | |
| 38 | print '[FAIL]', file_ |