import json import os.path import subprocess def save_settings(settings, root_pass): settings_dir = "/etc/excon_helper" settings_file = os.path.join(settings_dir, ".settings.json") temp_file = "/tmp/.settings.json" # Temporäre Datei # Temporäre Datei lokal schreiben with open(temp_file, "w") as temp: json.dump(settings, temp, indent=4) # Befehle zum Erstellen des Zielverzeichnisses und Kopieren der Datei commands = [ f"mkdir -p {settings_dir}", f"cp {temp_file} {settings_file}", f"chmod 777 {settings_file}", f"rm {temp_file}" # Temporäre Datei entfernen ] for command in commands: try: # Übergebe das Passwort an `sudo` und führe den Befehl aus process = subprocess.run( f"echo {root_pass} | sudo -S {command}", shell=True ) if process.returncode != 0: print(f"Cant save settings file") return False except Exception as e: print(f"Error: {e}") return False return True def load_settings(): settings_file = "/etc/excon_helper/.settings.json" # Überprüfen, ob die Datei existiert if not os.path.exists(settings_file): print(f"Error: Settings file doesnt exist") return {} # Lesen der JSON-Datei try: with open(settings_file, "r") as file: settings = json.load(file) return settings except json.JSONDecodeError: print("Error: Corrupted json file") except PermissionError: print("Error: no permission to read the file") except Exception as e: print(f"Unknown error: {e}") return {} def get_setting(key): settings = load_settings() if settings is not None: return settings.get(key) return None def set_setting(key, value): settings = load_settings() settings.set(key, value) save_settings(settings)