05.11.2024, 10:34
(Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2024, 10:38 von Manfred Aabye.)
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/opensimc...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:
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/opensimc...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 Ueberpruefen, ob 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 vorhanden, ueberspringe den Download...
)
echo _______________________________________________________________________________________________________________________
echo Kopiere Dateien von opensimcurrencyserver nach opensimsource...
echo _______________________________________________________________________________________________________________________
xcopy /s /y "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
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.