OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Hashing related operations. | 6 """Hashing related operations. |
7 | 7 |
8 Provides for hashing files or directory trees. | 8 Provides for hashing files or directory trees. |
9 Timestamps, archive order, and dot files/directories are ignored to keep | 9 Timestamps, archive order, and dot files/directories are ignored to keep |
10 hashes stable. | 10 hashes stable. |
11 """ | 11 """ |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 # are incorporated. | 65 # are incorporated. |
66 # Terminating with \x00 to avoid injection attacks. | 66 # Terminating with \x00 to avoid injection attacks. |
67 for d in dirs: | 67 for d in dirs: |
68 hasher.update('dir:' + d + '\x00') | 68 hasher.update('dir:' + d + '\x00') |
69 for f in files: | 69 for f in files: |
70 hasher.update('filename:' + f + '\x00') | 70 hasher.update('filename:' + f + '\x00') |
71 hasher.update('contents:' + HashFileContents( | 71 hasher.update('contents:' + HashFileContents( |
72 os.path.join(root, f))) | 72 os.path.join(root, f))) |
73 | 73 |
74 return hasher.hexdigest() | 74 return hasher.hexdigest() |
OLD | NEW |