annotate bin/cek.py @ 79:08d5f6023998

Replace checksum calculator with python version.
author Edho Prima Arief <me@myconan.net>
date Sat, 09 Jul 2011 15:33:37 +0700
parents
children 137b18a1898e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
79
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
1 #!/usr/bin/env python
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
2
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
3 import zlib, os, sys
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
4
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
5 def get_file_crc32(filename):
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
6 block_size = 1*2**20
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
7 return_code = 0
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
8 file_crc32 = 0
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
9 file_digest = 0
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
10 file_handle = open(filename, "rb")
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
11 if return_code == 0:
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
12 file_block = file_handle.read(block_size)
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
13 while file_block:
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
14 file_digest = zlib.crc32(file_block, file_digest)
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
15 file_block = file_handle.read(block_size)
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
16 file_handle.close()
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
17 file_digest = file_digest & 0xffffffff
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
18 return "%08X" % file_digest
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
19
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
20 if __name__ == "__main__":
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
21 for file in sys.argv[1:]:
08d5f6023998 Replace checksum calculator with python version.
Edho Prima Arief <me@myconan.net>
parents:
diff changeset
22 print "%s %s" % (file, get_file_crc32(file))