diff options
author | Ludwig Hähne <pankrat@tigris.org> | 2008-09-28 13:04:03 (GMT) |
---|---|---|
committer | Ludwig Hähne <pankrat@tigris.org> | 2008-09-28 13:04:03 (GMT) |
commit | 6d6e305945b5eec98de19aa5d2c22102951bf6c0 (patch) | |
tree | 306318b9af6080b3362ed9dc4b07c0f65704214a /src/engine/SCons/Util.py | |
parent | 951c698a7252b2382f126cd2e9eb9c95195f6633 (diff) | |
download | SCons-6d6e305945b5eec98de19aa5d2c22102951bf6c0.zip SCons-6d6e305945b5eec98de19aa5d2c22102951bf6c0.tar.gz SCons-6d6e305945b5eec98de19aa5d2c22102951bf6c0.tar.bz2 |
Issue 1646: Block-wise signature computation for large files
Diffstat (limited to 'src/engine/SCons/Util.py')
-rw-r--r-- | src/engine/SCons/Util.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py index 3fdc14c..7ea3673 100644 --- a/src/engine/SCons/Util.py +++ b/src/engine/SCons/Util.py @@ -1496,6 +1496,12 @@ md5 = False def MD5signature(s): return str(s) +def MD5filesignature(fname, chunksize=65536): + f = open(fname, "rb") + result = f.read() + f.close() + return result + try: import hashlib except ImportError: @@ -1508,6 +1514,17 @@ else: m.update(str(s)) return m.hexdigest() + def MD5filesignature(fname, chunksize=65536): + m = hashlib.md5() + f = open(fname, "rb") + while 1: + blck = f.read(chunksize) + if not blck: + break + m.update(str(blck)) + f.close() + return m.hexdigest() + def MD5collect(signatures): """ Collects a list of signatures into an aggregate signature. |