md5sum.py
38 lines
| 907 B
| text/x-python
|
PythonLexer
/ tests / md5sum.py
Gregory Szorc
|
r46434 | #!/usr/bin/env python3 | ||
Peter van Dijk
|
r1928 | # | ||
# Based on python's Tools/scripts/md5sum.py | ||||
# | ||||
# This software may be used and distributed according to the terms | ||||
# of the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, which is | ||||
# GPL-compatible. | ||||
Pulkit Goyal
|
r29485 | |||
Augie Fackler
|
r33875 | import hashlib | ||
Pulkit Goyal
|
r29485 | import os | ||
import sys | ||||
Dirkjan Ochtman
|
r6470 | |||
try: | ||||
Patrick Mezard
|
r7080 | import msvcrt | ||
Augie Fackler
|
r43346 | |||
Patrick Mezard
|
r7080 | msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) | ||
msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) | ||||
except ImportError: | ||||
pass | ||||
Peter van Dijk
|
r1924 | for filename in sys.argv[1:]: | ||
try: | ||||
fp = open(filename, 'rb') | ||||
Gregory Szorc
|
r25660 | except IOError as msg: | ||
Peter van Dijk
|
r1924 | sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg)) | ||
sys.exit(1) | ||||
Thomas Arendsen Hein
|
r3223 | |||
Augie Fackler
|
r33875 | m = hashlib.md5() | ||
Peter van Dijk
|
r1924 | try: | ||
Augie Fackler
|
r32852 | for data in iter(lambda: fp.read(8192), b''): | ||
Peter van Dijk
|
r1924 | m.update(data) | ||
Gregory Szorc
|
r25660 | except IOError as msg: | ||
Peter van Dijk
|
r1924 | sys.stderr.write('%s: I/O error: %s\n' % (filename, msg)) | ||
sys.exit(1) | ||||
sys.stdout.write('%s %s\n' % (m.hexdigest(), filename)) | ||||
sys.exit(0) | ||||