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