md5sum.py
42 lines
| 992 B
| text/x-python
|
PythonLexer
/ tests / md5sum.py
Thomas Arendsen Hein
|
r4122 | #!/usr/bin/env python | ||
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. | ||||
Patrick Mezard
|
r7080 | import sys, os | ||
Dirkjan Ochtman
|
r6470 | |||
try: | ||||
from hashlib import md5 | ||||
except ImportError: | ||||
from md5 import md5 | ||||
Peter van Dijk
|
r1924 | |||
Patrick Mezard
|
r7080 | try: | ||
import msvcrt | ||||
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') | ||||
except IOError, msg: | ||||
sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg)) | ||||
sys.exit(1) | ||||
Thomas Arendsen Hein
|
r3223 | |||
Dirkjan Ochtman
|
r6470 | m = md5() | ||
Peter van Dijk
|
r1924 | try: | ||
while 1: | ||||
data = fp.read(8192) | ||||
if not data: | ||||
break | ||||
m.update(data) | ||||
except IOError, msg: | ||||
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) | ||||