##// END OF EJS Templates
md5sum: adapt for python 3 support
Augie Fackler -
r32852:3a64ac39 default
parent child Browse files
Show More
@@ -1,44 +1,44 b''
1 #!/usr/bin/env python
1 #!/usr/bin/env python
2 #
2 #
3 # Based on python's Tools/scripts/md5sum.py
3 # Based on python's Tools/scripts/md5sum.py
4 #
4 #
5 # This software may be used and distributed according to the terms
5 # This software may be used and distributed according to the terms
6 # of the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, which is
6 # of the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, which is
7 # GPL-compatible.
7 # GPL-compatible.
8
8
9 from __future__ import absolute_import
9 from __future__ import absolute_import
10
10
11 import os
11 import os
12 import sys
12 import sys
13
13
14 try:
14 try:
15 import hashlib
15 import hashlib
16 md5 = hashlib.md5
16 md5 = hashlib.md5
17 except ImportError:
17 except ImportError:
18 import md5
18 import md5
19 md5 = md5.md5
19 md5 = md5.md5
20
20
21 try:
21 try:
22 import msvcrt
22 import msvcrt
23 msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
23 msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
24 msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
24 msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
25 except ImportError:
25 except ImportError:
26 pass
26 pass
27
27
28 for filename in sys.argv[1:]:
28 for filename in sys.argv[1:]:
29 try:
29 try:
30 fp = open(filename, 'rb')
30 fp = open(filename, 'rb')
31 except IOError as msg:
31 except IOError as msg:
32 sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg))
32 sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg))
33 sys.exit(1)
33 sys.exit(1)
34
34
35 m = md5()
35 m = md5()
36 try:
36 try:
37 for data in iter(lambda: fp.read(8192), ''):
37 for data in iter(lambda: fp.read(8192), b''):
38 m.update(data)
38 m.update(data)
39 except IOError as msg:
39 except IOError as msg:
40 sys.stderr.write('%s: I/O error: %s\n' % (filename, msg))
40 sys.stderr.write('%s: I/O error: %s\n' % (filename, msg))
41 sys.exit(1)
41 sys.exit(1)
42 sys.stdout.write('%s %s\n' % (m.hexdigest(), filename))
42 sys.stdout.write('%s %s\n' % (m.hexdigest(), filename))
43
43
44 sys.exit(0)
44 sys.exit(0)
General Comments 0
You need to be logged in to leave comments. Login now