| Index: mojo/tools/mopy/file_hash.py
|
| diff --git a/mojo/tools/mopy/file_hash.py b/mojo/tools/mopy/file_hash.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..63809694547beb778dcd228635ee28c71446ad9f
|
| --- /dev/null
|
| +++ b/mojo/tools/mopy/file_hash.py
|
| @@ -0,0 +1,26 @@
|
| +# Copyright 2014 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +import logging
|
| +
|
| +# pylint: disable=E0611
|
| +from hashlib import sha256
|
| +from mopy.memoize import memoize
|
| +# pylint: enable=E0611
|
| +
|
| +_logging = logging.getLogger()
|
| +
|
| +@memoize
|
| +def file_hash(filename):
|
| + """Returns a string representing the hash of the given file."""
|
| + _logging.debug("Hashing %s ...", filename)
|
| + with open(filename, mode='rb') as f:
|
| + m = sha256()
|
| + while True:
|
| + block = f.read(4096)
|
| + if not block:
|
| + break
|
| + m.update(block)
|
| + _logging.debug(" => %s", m.hexdigest())
|
| + return m.hexdigest()
|
|
|