Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: move items/logics/structs config dirs below etc #622

Merged
merged 15 commits into from
Feb 17, 2024

Conversation

Morg42
Copy link
Member

@Morg42 Morg42 commented Jan 19, 2024

Wie schon vorgeschlagen, werden die vom Benutzer zu befüllenden Verzeichnisse /items, /structs, /logics als Unterverzeichnisse nach /etc verschoben, so dass alle Verzeichnisse, in denen der Nutzer Daten verändert, in einem Verzeichnis liegen.

Neue Installationen starten gleich mit angepassten Daten.
Bei alten Installationen hat bin/smarthome.py eine Routine, die beim Start die alten Verzeichnisse migriert. Es werden keine Dateien überschrieben; im Zweifelsfall wird eine Meldung ausgegeben, welche Dateien von Hand zu migrieren sind.
Ein Neustart ist nicht erforderlich, weil die verschobenen Dateien bei der Initialisierung des sh-Objektes bereits verschoben sind.

@Morg42 Morg42 added this to the Version 1.11 milestone Jan 19, 2024
@Morg42 Morg42 self-assigned this Jan 19, 2024
@bmxp
Copy link
Member

bmxp commented Jan 20, 2024

Dann müsste man dazu passend noch die backup und restore Funktionen des admin Interface nachziehen, oder?

@msinn
Copy link
Member

msinn commented Jan 20, 2024

Richtig, aber das betrifft nicht das Admin Interface selbst, sondern lib, die das auch für die Kommandozeilenoption von smarthome.py implementiert.

@Morg42
Copy link
Member Author

Morg42 commented Jan 20, 2024

Da habe ich jetzt noch nicht nach geschaut - verwendet die die in shng definierten Standardverzeichnisse? Dann müsste das eigentlich "von alleine" klappen...

@Morg42
Copy link
Member Author

Morg42 commented Jan 20, 2024

So, scenes und userfunctions hatte ich übersehen.

Pfade in der Backup-lib sind angepasst, bei mir läuft backup und restore.

@bmxp
Copy link
Member

bmxp commented Jan 20, 2024

Klappt das restore auch von einer früheren Backup Version aus?

@msinn
Copy link
Member

msinn commented Jan 20, 2024

Bisher ja

@Morg42
Copy link
Member Author

Morg42 commented Jan 23, 2024

Alte und neue Backups unterscheiden sich inhaltlich nicht, die einzelnen Kategorien - Konfiguration, Items, Logiken usw befinden sich in eigenen Unterverzeichnissen.

Sie werden im neuen Vorschlag nur von unterschiedlichen Orten ins Backup gespielt und an unterschiedliche Orte zurück.

Beides hier schon getestet.

@Morg42 Morg42 marked this pull request as ready for review February 8, 2024 15:49
@Morg42
Copy link
Member Author

Morg42 commented Feb 14, 2024

Also, nach Diskussion:

Das ursprüngliche Verhalten von shng ist unverändert. Mit Kommandozeilenoption '-e' / '--config-etc' werden alle "user-defined" Verzeichnisse (items, structs, logics, scenes, functions) nicht im Stammverzeichnis (oder external_config_dir) gesucht, sondern unterhalb/innerhalb des jeweiligen etc-Ordners.

Dies wird auch von backup/restore entsprechend berücksichtigt, wenn die Option mit angegeben ist.

Eine Konfiguration in smarthome.yaml würde es nötig machen, nach dem Lesen der Konfiguration nochmals die Verzeichnisse zu ändern. Dann sollte das "Verzeichnisse setzen" in lib/smarthome.py und in lib/backup.py generell durch eine "zentrale" Methode (ggf. in smarthome.py/config.py?) erfolgen, damit nicht a) Code mehrfach geschrieben wird und b) Änderungen nicht mehrfach synchronisiert werden müssen.

Testet bei mir problemlos.

@Morg42 Morg42 merged commit 1de45ba into smarthomeNG:develop Feb 17, 2024
5 checks passed
@Morg42 Morg42 deleted the etc-dirs branch February 17, 2024 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants