import base64 import glob import hashlib import sys filename = sys.argv[1] # Compute the new hash and size def urlsafe_b64encode(data: bytes) -> bytes: return base64.urlsafe_b64encode(data).rstrip(b"=") hasher = hashlib.sha256() with open(filename, "rb") as f: data = f.read() hasher.update(data) hash_str = urlsafe_b64encode(hasher.digest()).decode("ascii") size = len(data) # Update the record file record_file = glob.glob("*/RECORD")[0] with open(record_file, "r") as f: lines = [l.split(",") for l in f.readlines()] for l in lines: if filename == l[0]: l[1] = hash_str l[2] = f"{size}\n" with open(record_file, "w") as f: for l in lines: f.write(",".join(l))