Fix more problems with "/usr/bin/env python" picking python3.

Open files in 'rb' (read binary) mode to prevent useless default utf8
encoding in python3, without breaking python2 compatibility.

Reported-by: Tharre <tharre3@gmail.com>
This commit is contained in:
Avery Pennarun 2019-05-15 16:53:49 -07:00
commit fb0a5bd69c
2 changed files with 3 additions and 3 deletions

View file

@ -8,7 +8,7 @@ subprocess.check_call([
], close_fds=False) ], close_fds=False)
h = hashlib.sha256() h = hashlib.sha256()
f = open(sys.argv[2]) f = open(sys.argv[2], 'rb')
while 1: while 1:
b = f.read(65536) b = f.read(65536)
if not b: break if not b: break

View file

@ -6,14 +6,14 @@ for name in sys.stdin:
st = os.lstat(name) st = os.lstat(name)
if stat.S_ISREG(st.st_mode): if stat.S_ISREG(st.st_mode):
h = hashlib.sha256() h = hashlib.sha256()
f = open(name) f = open(name, 'rb')
while 1: while 1:
b = f.read(65536) b = f.read(65536)
if not b: break if not b: break
h.update(b) h.update(b)
digest = h.hexdigest() digest = h.hexdigest()
elif stat.S_ISLNK(st.st_mode): elif stat.S_ISLNK(st.st_mode):
digest = hashlib.sha256(os.readlink(name)).hexdigest() digest = hashlib.sha256(os.readlink(name).encode('utf8')).hexdigest()
else: else:
digest = '0' digest = '0'
print('%s %07o-%s-%s-%s' % ( print('%s %07o-%s-%s-%s' % (