diff --git a/sostituzioni/control/configurazione.py b/sostituzioni/control/configurazione.py index 92b4ab7..2bee158 100644 --- a/sostituzioni/control/configurazione.py +++ b/sostituzioni/control/configurazione.py @@ -610,7 +610,12 @@ def __init__(self): "main", ] + @beartype def load(self, file: Path = CONFIG_FILE): + if not file.exists(): + logger.error(f"File di configurazione non trovato: {file}") + return False + with open(file, encoding="utf-8") as configfile: logger.debug("Caricamento file di configurazione..") self.data = load(configfile) @@ -644,6 +649,8 @@ def load(self, file: Path = CONFIG_FILE): ) self.set("version", v, force=True) + return True + def applica_aggiornamenti(self): """ Funzione che viene eseguita allo startup, per aggiornare sezioni e opzioni @@ -651,7 +658,13 @@ def applica_aggiornamenti(self): """ # Carica la configurazione del template configurazione_template = Configurazione() - configurazione_template.load(CONFIG_TEMPLATE) + ok = configurazione_template.load(CONFIG_TEMPLATE) + + if not ok: + logger.error( + "Errore durante il caricamento del template, impossibile applicare aggiornamenti." + ) + return False for sezione_template in configurazione_template.sezioni: # Se la sezione è già presente nella configurazione locale @@ -817,6 +830,13 @@ def esporta(self, file: str | Path = CONFIG_FILE): configurazione = Configurazione() -if "SOSTITUZIONI_SETUP" not in os.environ: - configurazione.load() +if "SCUOLASYNC_SETUP" not in os.environ: + ok = configurazione.load() + + if not ok: + logger.error( + "Configurazione di sistema non caricata. Controllare la posizione del file, oppure eseguire `python -m sostituzioni.setup` per inizializzare il sistema." + ) + exit(1) + configurazione.applica_aggiornamenti() diff --git a/sostituzioni/setup.py b/sostituzioni/setup.py index 0da0e67..c77c858 100644 --- a/sostituzioni/setup.py +++ b/sostituzioni/setup.py @@ -203,7 +203,7 @@ def init_database_utenti(): def main(): global ROOT_PATH, CONFIG_FILE, CONFIG_TEMPLATE, configurazione - environ["SOSTITUZIONI_SETUP"] = "1" + environ["SCUOLASYNC_SETUP"] = "1" from sostituzioni.control.configurazione import ( ROOT_PATH,