orca/scripts/checksum.py

31 lines
740 B
Python

import hashlib
import json
from .log import *
def checkfile(filepath):
newsum = filesum(filepath)
sums = {}
with open("scripts/checksums.json", "r") as sumsfile:
sums = json.loads(sumsfile.read())
if filepath not in sums:
msg = log_warning(f"no checksum saved for file {filepath}")
msg.more(f"file had checksum: {newsum}")
return False
sum = sums[filepath]
if sum != newsum:
msg = log_warning(f"checksums did not match for {filepath}:")
msg.more(f"expected: {sum}")
msg.more(f" got: {newsum}")
return False
return True
def filesum(filepath):
with open(filepath, "rb") as file:
return hashlib.sha256(file.read()).hexdigest()