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()