util,python: Add check to ensure files are utf-8 in pre-commit

The `file_from_index` function throws a UnicodeDecodeError if a modified
file targetted for style-checking (i.e. source-code) cannot be decoded
using `.decode("utf-8")`.

This check throws an error informing the user a submitted file must be
utf-8 encoded if this case arises.

Change-Id: I2361017f2e7413ed60f897d2301f2e4c7995dd76
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/40015
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Bobby R. Bruce
2021-01-27 21:33:15 -08:00
parent 86222736e6
commit 58ccc6287e

View File

@@ -76,8 +76,16 @@ for status, fname in git.status(filter="MA", cached=True):
else:
regions = all_regions
# Show they appropriate object and dump it to a file
status = git.file_from_index(fname)
# Show the appropriate object and dump it to a file
try:
status = git.file_from_index(fname)
except UnicodeDecodeError:
print("Decoding '" + fname
+ "' throws a UnicodeDecodeError.", file=sys.stderr)
print("Please check '" + fname
+ "' exclusively uses utf-8 character encoding.", file=sys.stderr)
sys.exit(1)
f = TemporaryFile()
f.write(status.encode('utf-8'))