-
Notifications
You must be signed in to change notification settings - Fork 91
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
Conversation
Dann müsste man dazu passend noch die backup und restore Funktionen des admin Interface nachziehen, oder? |
Richtig, aber das betrifft nicht das Admin Interface selbst, sondern lib, die das auch für die Kommandozeilenoption von smarthome.py implementiert. |
Da habe ich jetzt noch nicht nach geschaut - verwendet die die in shng definierten Standardverzeichnisse? Dann müsste das eigentlich "von alleine" klappen... |
So, scenes und userfunctions hatte ich übersehen. Pfade in der Backup-lib sind angepasst, bei mir läuft backup und restore. |
Klappt das restore auch von einer früheren Backup Version aus? |
Bisher ja |
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. |
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. |
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.