GridTalk.de

Normale Version: OpenSim autoconfig addon-module
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Wer Lust und Zeit hat der kann ja mal mit meiner neuen Spielwiese herumexperimentieren.
Einiges hab ich drin, anderes funktioniert nicht richtig oder fehlt.

Was macht es:
Es erstellt aus euren *.ini.example Dateien
hoffentlich funktionierende Konfigurationen für:
MoneyServer
OpenSim
Robust
RobustHG
StandaloneCommon
GridCommon
osslEnable
Regions


viel Spaß beim testen Smile

Github: https://github.com/BigManzai/opensim-con...ddon-modul
Huch durch die win32.dll garnicht Linux mono tauglich.
Also noch einmal zum 4. mal neu starten lach.
Alles neu mono und .Net kompatibel.
Probleme wird es mit der Avatar Registrierung in Robust und OpenSim geben.
Ich denke die Registrierung nehme ich raus.
Regions.ini funktioniert schon, aber es wird noch keine fertige Konfiguration geschrieben.
Ich denke ich ändere die Regions.ini auch nicht, sondern schreibe die gleich neu.
Kompilieren tut das ganze unter Win10 und Ubuntu18 Fehlerfrei.
Nette Idee aber benutze doch einen konfig reader. Dieses einzlene Zeilen schreiben und ersetzen ist ja grauenhaft. Das währe viel einfacher und fehlersicherer. OpenSim hat schon nini ( http://nini.sourceforge.net/ ) mit dabei oder nutze eine kleine klasse die dir diese aufgabe abnimmt. ( https://github.com/Sahrea/Chris.OS.Confi...gReader.cs )

Code:
ConfigReader config = new ConfigReader("OpenSim.ini")
config.set("Startup", "DefaultScriptEngine", "YEngine")
config.set("YEngine", "enable", "true")
config.set("XEngine", "enable", "false")
config.save()

Ist doch viel einfacher als nach Zeilen zu suchen und diese zu ersetzen.
Ich hab das so von Diva Configure übernommen, weil ich nicht wusste wie ich anfangen sollte.
https://github.com/diva/d2/tree/master/T...figuration

Nini ist altes Zeug, wo es nicht einmal eine Dokumentation für gibt.
Ich hab schon einiges durch, das letzte war peanutbutter.ini und IniFileParser.
Entweder die sind undokumentiert, oder funktionieren nicht richtig, oder laufen nur unter Windows.

Dein Beispiel löscht bei mir alle Kommentare, na ja wahrscheinlich mache ich auch was verkehrt.

Die einfachste und sauberste Art für mich, ist es die Konfigurationen komplett neu zu schreiben,
so wie in ConfigureRegions() bei mir. Hier ist jeder schritt logisch nachvollziehbar.
Die Entwickler des .NET Frameworks möchten absichtlich das alte INI Format nicht unterstützen, neue Projekte sollen XML oder JSON verwenden. Soweit ich weiß, gibt es innerhalb von .NET nur eine Extension, um Key/Value Paare aus Ini-Dateien zu lesen, aber keine Klassen, die ggf. veränderte Ini-Dateien schreiben können.

Leider bleiben daher nur die Möglichkeiten, selber eine solche Klasse zu schreiben, oder die diversen Code-Projekte anderer Leute im Internet durchzuprobieren. Dieses hier ist sehr verbreitet und kann auch mit Kommentaren umgehen.
(28.11.2021, 13:57)Manfred Aabye schrieb: [ -> ]Dein Beispiel löscht bei mir alle Kommentare, na ja wahrscheinlich mache ich auch was verkehrt.

Für diesen Anwendungsfall, den ich dort habe, brauche ich keine kommentare. Wenn du kommentare behalten willst kannst du Zeile 30 und 31 löschen.
Seegig sind die Blinden Smile

Steht ja da Trim und ; # hätte ich eigentlich gleich sehen können,
aber wenn man auf der Suche viele tausende von Zeilen lesen muss,
ist das gar nicht mehr so leicht.

XML hat sich nicht durchgesetzt, es ist für den Menschen einfach zu mühsam zu lesen.
Json ist etwas besser zu lesen, aber Ini ist für mich immer noch die beste Lösung.

Wie gesagt, ich möchte auf keinen Fall anderen die Dokumentation in den Skripten ändern oder löschen.
Das soll alles so bleiben und auch in Zukunft wenn sich die Konfigurationen ändern sollte,
soll es ja auch noch funktionieren.
XML hat sich in meinem Umfeld ganz massiv durchgesetzt, mit etwas Gewöhnung ist es meiner Meinung nach auch für Menschen gut lesbar. Aber selbstverständlich plädiere ich jetzt nicht dafür, die diversen OpenSim Ini-Dateien in XML-Dateien umzuwandeln, außer OpenSim würde generell umstellen. Ich finde deinen (@Manfred) Weg sehr gut, die Ini-Dateien möglichst wenig anzufassen, die Kommentare stehen zu lassen, und damit kompatibel zu den diversen existierenden Anleitungen und Hilfestellungen zu bleiben.
Die Nini Konfiguration
Ich habe mal das Handbuch übersetzt und eine doxygen Dokumentation erstellt.
Nini wird von OpenSim benutzt um die xml und ini Konfigurationen zu lesen.
Konfigurationen können hiermit aber auch erstellt oder geändert werden.

Nini Handbuch:
https://github.com/BigManzai/opensim-con...i-Handbuch

Doxygen Dokumentation:
https://github.com/BigManzai/opensim-con...ddon-modul
Datei NiniConfigDoc.zip entpacken und 000index.html oder index.html mit einem Internet Browser aufrufen.