GridTalk.de
OpenSimulator und MoneyServer - Druckversion

+- GridTalk.de (https://www.gridtalk.de)
+-- Forum: Werkstatt (https://www.gridtalk.de/forumdisplay.php?fid=4)
+--- Forum: Technik (https://www.gridtalk.de/forumdisplay.php?fid=25)
+---- Forum: Windows (https://www.gridtalk.de/forumdisplay.php?fid=27)
+---- Thema: OpenSimulator und MoneyServer (/showthread.php?tid=4925)



OpenSimulator und MoneyServer - Manfred Aabye - 05.11.2024

Dieses Batch-Skript automatisiert den Aufbau und die Vorbereitung einer OpenSimulator-Umgebung.
Hier ist eine schrittweise Erklärung, was jedes Segment des Skripts macht:

1. **Echo-Aktivität für Benutzerfreundlichkeit**:
```batch
@echo off
echo _______________________________________________________________________________________________________________________
echo Starte die OpenSim Setup...
```
- Das `@echo off` schaltet die Anzeige der Batch-Befehle aus, um die Ausgabe zu bereinigen.
- Die `echo`-Befehle zeigen Informationen und Fortschritt an.

2. **Prüfen und Herunterladen des OpenSim-Quellcodes**:
```batch
if not exist "opensimsource" (
echo Lade OpenSim herunter...
git clone https://github.com/opensim/opensim.git opensimsource
) else (
echo Loesche altes Verzeichnis...
rmdir /s opensimsource
echo Lade OpenSim herunter...
git clone https://github.com/opensim/opensim.git opensimsource
)
```
- Überprüft, ob das Verzeichnis `opensimsource` existiert.
- Falls es nicht existiert, wird das Repository über `git clone` von GitHub heruntergeladen.
- Wenn es jedoch vorhanden ist, wird das alte Verzeichnis gelöscht und das Repository neu geklont.

3. **Herunterladen eines zusätzlichen Moduls (Money-Modul)**:
```batch
if not exist "opensimsource\opensimcurrencyserver" (
echo Lade Money-Modul herunter...
git clone https://github.com/ManfredAabye/opensimcurrencyserver-dotnet.git opensimsource\opensimcurrencyserver
) else (
echo Money-Modul bereits vorhanden, ueberspringe den Download...
)
```
- Überprüft, ob das Money-Modul in `opensimsource\opensimcurrencyserver` vorhanden ist.
- Falls es nicht existiert, wird das Repository von GitHub heruntergeladen. Andernfalls wird der Download übersprungen.

4. **Kopieren von Dateien aus dem Money-Modul in das Hauptprojekt**:
```batch
xcopy /s /y "opensimsource\opensimcurrencyserver\addon-modules\*.*" "opensimsource\addon-modules\"
xcopy /s /y "opensimsource\opensimcurrencyserver\bin\*.*" "opensimsource\bin\"
```
- Kopiert die Dateien des Money-Moduls in die entsprechenden Unterverzeichnisse von `opensimsource`, um die Integration zu erleichtern.

5. **Wechsel in das `opensimsource`-Verzeichnis**:
```batch
cd opensimsource
```
- Wechselt in das `opensimsource`-Verzeichnis, um dort weitere Befehle auszuführen.

6. **Entfernen der `.example`-Endung**:
```batch
for /r %%f in (*.example) do (
set "newname=%%~dpnf"
>nul 2>&1 ren "%%f" "%%~nf"
)
```
- Durchsucht rekursiv alle `.example`-Dateien und entfernt die `.example`-Endung.
- Diese Dateien werden dann umbenannt, was oft erforderlich ist, um Konfigurationsdateien funktionsfähig zu machen.

7. **Kopieren einer DLL-Datei**:
```batch
copy bin\System.Drawing.Common.dll.win bin\System.Drawing.Common.dll
```
- Kopiert eine DLL-Datei (`System.Drawing.Common.dll.win`) nach `System.Drawing.Common.dll` im `bin`-Verzeichnis.
- Diese Datei ist möglicherweise erforderlich, um die Funktionalität des Projekts sicherzustellen.

8. **Vorbereitung der Prebuild-Dateien**:
```batch
dotnet bin\prebuild.dll /target vs2022 /targetframework net8_0 /excludedir = "obj | bin" /file prebuild.xml
```
- Führt das Prebuild-Skript mit bestimmten Parametern aus, um Visual Studio 2022 als Ziel zu definieren.
- `prebuild.xml` wird verwendet, um Abhängigkeiten und Projektdateien zu erstellen, die für das Projekt benötigt werden.

9. **Erstellen eines `compile.bat`-Skripts**:
```batch
@echo dotnet build --configuration Release OpenSim.sln > compile.bat
```
- Erstellt eine neue Datei namens `compile.bat`, die die Kompilierung von OpenSimulator steuert.

10. **Optionales Kompilieren des OpenSimulator-Projekts**:
```batch
set /p compileChoice="Moechten Sie den OpenSimulator jetzt kompilieren? (J/N): "
if /i "%compileChoice%"=="J" (
echo Starte die Kompilierung von OpenSimulator...
dotnet build --configuration Release OpenSim.sln
) else (
echo Kompilierung uebersprungen.
)
```
- Fragt den Benutzer, ob das Projekt kompiliert werden soll.
- Falls der Benutzer `J` (für „Ja“) eingibt, wird das Projekt in der Release-Konfiguration kompiliert.

11. **Zurück zum Hauptverzeichnis und Abschluss**:
```batch
cd ..
echo Setup abgeschlossen.
pause
```
- Kehrt zum Hauptverzeichnis zurück und pausiert, sodass der Benutzer die Ausgabe lesen kann, bevor das Fenster geschlossen wird.

---

**Zusammenfassung**: Dieses Skript lädt und konfiguriert den OpenSimulator und ein zusätzliches Money-Modul, bereitet alle Dateien vor, und bietet die Option, das Projekt zu kompilieren. Es ist besonders hilfreich, um die Setup-Schritte zu automatisieren und eine lauffähige Umgebung zu erstellen.

Ich habe das eigentlich gemacht, um mir die Arbeit am MoneyServer zu erleichtern.

Skript opensim_source.bat komplett:
PHP-Code:
@echo off

echo _______________________________________________________________________________________________________________________
echo Starte die OpenSim Setup...
echo 
_______________________________________________________________________________________________________________________
echo Ueberpruefenob das opensimsource-Verzeichnis existiert
echo _______________________________________________________________________________________________________________________

if not exist "opensimsource" (
    echo 
Lade OpenSim herunter...
    
git clone https://github.com/opensim/opensim.git opensimsource
) else (
    echo 
Loesche altes Verzeichniss...
    
rmdir /s opensimsource
    
echo Lade OpenSim herunter...
    
git clone https://github.com/opensim/opensim.git opensimsource
)

echo 
_______________________________________________________________________________________________________________________
echo Money Repository in ein Unterverzeichnis von opensimsource klonen
echo _______________________________________________________________________________________________________________________

if not exist "opensimsource\opensimcurrencyserver" (
    echo 
Lade Money-Modul herunter...
    
git clone https://github.com/ManfredAabye/opensimcurrencyserver-dotnet.git opensimsource\opensimcurrencyserver
) else (
    echo 
Money-Modul bereits vorhandenueberspringe den Download...
)

echo 
_______________________________________________________________________________________________________________________
echo Kopiere Dateien von opensimcurrencyserver nach opensimsource...
echo 
_______________________________________________________________________________________________________________________

xcopy 
//"opensimsource\opensimcurrencyserver\addon-modules\*.*" "opensimsource\addon-modules\"
xcopy /s /y "
opensimsource\opensimcurrencyserver\bin\*.*" "opensimsource\bin\"

echo _______________________________________________________________________________________________________________________
echo Wechsle in das Verzeichnis opensimsource...
echo _______________________________________________________________________________________________________________________

cd opensimsource

echo _______________________________________________________________________________________________________________________
echo Entferne .example Endungen in allen Dateien...
echo _______________________________________________________________________________________________________________________

for /r %%f in (*.example) do (
    set "
newname=%%~dpnf"
    >nul 2>&1 ren "
%%f" "%%~nf"
)

echo _______________________________________________________________________________________________________________________
echo Kopiere System.Drawing.Common.dll.win in bin...
echo _______________________________________________________________________________________________________________________

copy bin\System.Drawing.Common.dll.win bin\System.Drawing.Common.dll

echo _______________________________________________________________________________________________________________________
echo Erstelle die Prebuild Dateien...
echo _______________________________________________________________________________________________________________________

dotnet bin\prebuild.dll /target vs2022 /targetframework net8_0 /excludedir = "
obj bin" /file prebuild.xml

echo _______________________________________________________________________________________________________________________
echo Erstelle die compile.bat...
echo _______________________________________________________________________________________________________________________

@echo Creating compile.bat
@echo dotnet build --configuration Release OpenSim.sln > compile.bat

echo _______________________________________________________________________________________________________________________
set /p compileChoice="
Moechten Sie den OpenSimulator jetzt kompilieren? (J/N): "
echo _______________________________________________________________________________________________________________________
if /i "
%compileChoice%"=="J" (
    echo Starte die Kompilierung von OpenSimulator...
    dotnet build --configuration Release OpenSim.sln
) else (
    echo Kompilierung uebersprungen.
)

echo _______________________________________________________________________________________________________________________
echo Zurueck ins Hauptverzeichnis...
cd ..

echo _______________________________________________________________________________________________________________________

echo Setup abgeschlossen.
pause