Kettenoeler/Software/codegen/filechecksum.py

46 lines
1.7 KiB
Python

import hashlib
import json
# Funktion zum Berechnen der SHA-256-Checksumme
def calculate_checksum(data):
sha256 = hashlib.sha256()
sha256.update(str(data).encode('utf-8'))
return sha256.hexdigest()
# Funktion zum Lesen und Vergleichen der Checksumme in einer Datei
def read_and_compare_checksum(file_path, expected_checksum):
try:
with open(file_path, 'r') as file:
content = file.read()
# Suche nach der Zeile mit der Checksumme
checksum_line_start = content.find("// CODEGENERATOR_CHECKSUM:")
if checksum_line_start != -1:
# Extrahiere die Checksumme aus der Zeile
existing_checksum = content[checksum_line_start + len("// CODEGENERATOR_CHECKSUM:"):].strip()
# Vergleiche die Checksummen
if existing_checksum == expected_checksum:
return True
except FileNotFoundError:
pass # Datei existiert nicht, was nicht schlimm ist
return False
def read_and_compare_json_checksum(json_file_path, expected_checksum):
try:
with open(json_file_path, 'r') as json_file:
# Lade das JSON aus der Datei
data = json.load(json_file)
# Überprüfe, ob "codegenerator_checksum" im JSON vorhanden ist
if "codegenerator_checksum" in data:
existing_checksum = data["codegenerator_checksum"]
# Vergleiche die Checksummen
if existing_checksum == expected_checksum:
return True
except FileNotFoundError:
pass # Datei existiert nicht, was nicht schlimm ist
return False