V25.4.42.104

This commit is contained in:
ManfredAabye
2025-04-14 20:12:34 +02:00
committed by GitHub
parent 21596f8dc8
commit 31cdcfd25a
3 changed files with 455 additions and 129 deletions
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
# Überprüfe, ob eine Datei angegeben wurde
if [ -z "$1" ]; then
echo -e "\033[31mFehler: Keine Eingabedatei angegeben.\033[0m"
echo "Verwendung: $0 <bash_skript.sh>"
exit 1
fi
input_file="$1"
output_file="funktionsliste.txt"
# Lösche die alte Ausgabedatei (falls vorhanden)
# shellcheck disable=SC2188
> "$output_file"
# Extrahiere Funktionsnamen mit grep
# - Erkennung von 'function XYZ()' oder 'XYZ()'
grep -E '^[[:space:]]*(function[[:space:]]+)?[a-zA-Z_][a-zA-Z0-9_]*[[:space:]]*\(\)' "$input_file" | \
while read -r line; do
# Entferne 'function ' und '()'
func_name=$(echo "$line" | sed -E 's/^[[:space:]]*function[[:space:]]+//; s/[[:space:]]*\(\)[[:space:]]*//')
echo "$func_name" >> "$output_file"
done
echo -e "\033[32mFunktionen wurden in \033[1m$output_file\033[0m \033[32mgespeichert.\033[0m"
echo "Anzahl gefundener Funktionen: $(wc -l < "$output_file")"
+46
View File
@@ -0,0 +1,46 @@
autoallclean
autosetinstall
cacheclean
check_screens
clean_comments_and_empty_lines
clean_config
cleanall
cleandoublecomments
colortest
configall
createdirectory
dataclean
detect_distro
generate_name
generate_password
generate_uuid
help
logclean
mapclean
mariasetup
moneygit
opensimbuild
opensimcopy
opensimgit
opensimrestart
opensimstart
opensimstop
opensimupgrade
pathclean
reboot
regionsclean
regionsconfig
renamefiles
servercheck
setcrontab
setflotsamcache
setgridcommon
setopensim
setosslenable
setrobusthg
setwelcome
sqlsetup
standalone
standalonerestart
standalonestart
standalonestop
+382 -129
View File
@@ -1,42 +1,35 @@
#!/bin/bash
#──────────────────────────────────────────────────────────────────────────────────────────
#* Sprache und Texte einstellen
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Informationen Kopfzeile
#?──────────────────────────────────────────────────────────────────────────────────────────
#──────────────────────────────────────────────────────────────────────────────────────────
#* Informationen
#──────────────────────────────────────────────────────────────────────────────────────────
SCRIPTNAME="opensimMULTITOOL II"
VERSION="V25.4.41.93"
echo "$SCRIPTNAME $VERSION"
tput reset # Bildschirmausgabe loeschen inklusive dem Scrollbereich.
SCRIPTNAME="opensimMULTITOOL II"
VERSION="V25.4.42.104"
echo -e "\e[36m$SCRIPTNAME\e[0m $VERSION"
echo "Dies ist ein Tool welches der Verwaltung von OpenSim Servern dient."
echo "Bitte beachten Sie, dass die Anwendung auf eigene Gefahr und Verantwortung erfolgt."
echo -e "\e[33mZum Abbrechen bitte STRG+C oder CTRL+C drücken.\e[0m"
echo " "
#──────────────────────────────────────────────────────────────────────────────────────────
#* Variablen
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Variablen setzen
#?──────────────────────────────────────────────────────────────────────────────────────────
# Hauptpfad des Skripts automatisch setzen
SCRIPT_DIR="$(dirname "$(realpath "$0")")"
cd "$SCRIPT_DIR" || exit 1
echo "Arbeitsverzeichnis ist: $SCRIPT_DIR"
echo " "
system_ip=$(hostname -I | awk '{print $1}')
echo "Ihre IP Adresse: $system_ip"; echo " "
KOMMANDO=$1 # Eingabeauswertung fuer Funktionen.
MONEYCOPY="yes" # MoneyServer Installieren.
system_ip=$(hostname -I | awk '{print $1}')
#MONEYCOPY="yes" # MoneyServer Installieren.
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Abhängigkeiten installieren
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
# Fehlende Abhängigkeiten installieren
function servercheck() {
@@ -117,10 +110,9 @@ function servercheck() {
echo "✓ Alle benötigten Pakete wurden installiert."
}
#──────────────────────────────────────────────────────────────────────────────────────────
#* Start Stop Restart
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Start Stop Standalone
#?──────────────────────────────────────────────────────────────────────────────────────────
function standalonestart() {
cd opensim/bin || exit 1
@@ -131,11 +123,9 @@ function standalonestop() {
screen -S opensim -p 0 -X stuff "shutdown^M"
}
function standalonerestart() {
standalonestart
sleep 30
standalonestop
}
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Start Stop Grid
#?──────────────────────────────────────────────────────────────────────────────────────────
# OpenSim starten (robust → money → sim1 bis sim999)
function opensimstart() {
@@ -209,15 +199,7 @@ function opensimstop() {
echo -e "\e[0m"
}
# OpenSim neu starten
function opensimrestart() {
opensimstop
sleep 30 # Kurze Pause, um sicherzustellen, dass alles gestoppt wurde
opensimstart
echo "Welche sim Regionen sind gestartet?:"
screen -ls
}
# check_screens ist eine Grid Funktion und funktioniert nicht im Standalone.
function check_screens() {
# echo "Überprüfung der laufenden OpenSim-Prozesse..."
@@ -274,27 +256,17 @@ function check_screens() {
done
}
function reboot() {
echo "Server wird jetzt heruntergefahren und neu gestartet!"
# Stoppen des ganzen OpenSim Grids.
opensimstop
sleep 30
# Starte den Server neu.
shutdown -r now
}
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Erstellen eines OpenSimulators
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
function opensimgitcopy() {
echo "Möchten Sie den OpenSimulator vom GitHub verwenden? ([ja]/nein)"
function opensimgit() {
echo "Möchten Sie den OpenSimulator vom GitHub verwenden oder aktualisieren? ([upgrade]/new)"
read -r user_choice
user_choice=${user_choice:-upgrade}
user_choice=${user_choice:-ja}
if [[ "$user_choice" == "ja" ]]; then
# Falls eine alte Version existiert, diese entfernen
if [[ "$user_choice" == "new" ]]; then
# Falls eine alte Version existiert, wird sie gelöscht
if [[ -d "opensim" ]]; then
echo "Vorhandene OpenSimulator-Version wird gelöscht..."
rm -rf opensim
@@ -305,52 +277,84 @@ function opensimgitcopy() {
git clone git://opensimulator.org/git/opensim opensim
echo "✓ OpenSimulator wurde erfolgreich heruntergeladen."
# .NET-Version auswählen
echo "Möchten Sie diese Version mit .NET 6 oder .NET 8 betreiben? ([8]/6)"
read -r dotnet_version
dotnet_version=${dotnet_version:-8}
if [[ "$dotnet_version" == "6" ]]; then
echo "Wechsle zu .NET 6-Version..."
cd opensim || { echo "Fehler: Verzeichnis 'opensim' nicht gefunden."; return 1; }
git checkout dotnet6
echo "✓ OpenSimulator wurde für .NET 6 umgebaut."
elif [[ "$user_choice" == "upgrade" ]]; then
if [[ -d "opensim/.git" ]]; then
echo "✓ Repository gefunden. Aktualisiere mit 'git pull'..."
cd opensim || { echo "✘ Fehler: Kann nicht ins Verzeichnis wechseln!"; return 1; }
git pull origin master && echo "✅ OpenSimulator erfolgreich aktualisiert!"
cd ..
else
echo "✓ Standardmäßig wird .NET 8 verwendet."
echo "⚠ OpenSimulator-Verzeichnis nicht gefunden. Klone Repository neu..."
git clone git://opensimulator.org/git/opensim opensim && echo "✅ OpenSimulator erfolgreich heruntergeladen!"
fi
else
echo "✘ Abbruch: OpenSimulator wird nicht von GitHub geholt."
echo "✘ Abbruch: Keine Aktion durchgeführt."
return 1
fi
# .NET-Version auswählen
echo "Möchten Sie diese Version mit .NET 6 oder .NET 8 betreiben? ([8]/6)"
read -r dotnet_version
dotnet_version=${dotnet_version:-8}
if [[ "$dotnet_version" == "6" ]]; then
echo "Wechsle zu .NET 6-Version..."
cd opensim || { echo "Fehler: Verzeichnis 'opensim' nicht gefunden."; return 1; }
git checkout dotnet6
echo "✓ OpenSimulator wurde für .NET 6 umgebaut."
else
echo "✓ Standardmäßig wird .NET 8 verwendet."
fi
}
function moneygitcopy() {
# Falls MONEYCOPY nicht gesetzt oder "no" ist, nichts tun
if [[ -z "$MONEYCOPY" || "$MONEYCOPY" == "no" ]]; then
return
fi
function moneygit() {
echo "Möchten Sie den MoneyServer vom GitHub verwenden oder aktualisieren? ([upgrade]/new)"
read -r user_choice
user_choice=${user_choice:-upgrade}
if [[ "$MONEYCOPY" == "yes" ]]; then
echo "MONEYSERVER: MoneyServer wird vom GIT geholt"
git clone https://github.com/ManfredAabye/opensimcurrencyserver-dotnet.git opensimcurrencyserver
# Prüfen, ob das Verzeichnis existiert, bevor es kopiert wird
if [[ -d "opensimcurrencyserver/addon-modules" ]]; then
cp -r opensimcurrencyserver/addon-modules opensim/
echo "✓ MONEYSERVER: addon-modules wurde nach opensim kopiert"
else
echo "✘ MONEYSERVER: addon-modules existiert nicht"
if [[ "$user_choice" == "new" ]]; then
if [[ -d "opensimcurrencyserver" ]]; then
echo "Vorhandene MoneyServer-Version wird gelöscht..."
rm -rf opensimcurrencyserver
echo "✓ Alte MoneyServer-Version wurde erfolgreich entfernt."
fi
if [[ -d "opensimcurrencyserver/bin" ]]; then
cp -r opensimcurrencyserver/bin opensim/
echo "✓ MONEYSERVER: bin wurde nach opensim kopiert"
echo "MONEYSERVER: MoneyServer wird vom GIT geholt..."
git clone https://github.com/ManfredAabye/opensimcurrencyserver-dotnet.git opensimcurrencyserver
echo "✓ MoneyServer wurde erfolgreich heruntergeladen."
elif [[ "$user_choice" == "upgrade" ]]; then
if [[ -d "opensimcurrencyserver/.git" ]]; then
echo "✓ Repository gefunden. Aktualisiere mit 'git pull'..."
cd opensimcurrencyserver || { echo "✘ Fehler: Kann nicht ins Verzeichnis wechseln!"; return 1; }
# Automatische Branch-Erkennung
branch_name=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
git pull origin "$branch_name" && echo "✅ MoneyServer erfolgreich aktualisiert!"
cd ..
else
echo " MONEYSERVER: bin existiert nicht"
echo " MoneyServer-Verzeichnis nicht gefunden. Klone Repository neu..."
git clone https://github.com/ManfredAabye/opensimcurrencyserver-dotnet.git opensimcurrencyserver && echo "✅ MoneyServer erfolgreich heruntergeladen!"
fi
else
echo "✘ MONEYSERVER: MoneyServer nicht vorhanden"
echo "✘ Abbruch: Keine Aktion durchgeführt."
return 1
fi
# Prüfen, ob das Verzeichnis existiert, bevor es kopiert wird
if [[ -d "opensimcurrencyserver/addon-modules" ]]; then
cp -r opensimcurrencyserver/addon-modules opensim/
echo "✓ MONEYSERVER: addon-modules wurde nach opensim kopiert"
else
echo "✘ MONEYSERVER: addon-modules existiert nicht"
fi
if [[ -d "opensimcurrencyserver/bin" ]]; then
cp -r opensimcurrencyserver/bin opensim/
echo "✓ MONEYSERVER: bin wurde nach opensim kopiert"
else
echo "✘ MONEYSERVER: bin existiert nicht"
fi
return 0
}
@@ -377,9 +381,9 @@ function opensimbuild() {
fi
}
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Erstellen eines OpenSimulators Grids
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
function createdirectory () {
echo "Möchten Sie einen Gridserver oder einen Regionsserver erstellen? ([grid]/region)"
@@ -685,16 +689,52 @@ EOF
fi
}
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Upgrade des OpenSimulators Grids
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
# Upgrade ist eigentlich nur ein entpacken eines OpenSimulator und umbenennen des Ordners in opensim.
# Dann das stoppen des Grids, neues OpenSim kopieren und alles neu starten.
#──────────────────────────────────────────────────────────────────────────────────────────
function opensimupgrade() {
echo -e "\n\033[33mDer OpenSimulator muss zuerst im Verzeichnis 'opensim' vorliegen!\033[0m"
echo "Möchten Sie den OpenSimulator aktualisieren? ([no]/yes)"
read -r user_choice
user_choice=${user_choice:-no}
# Prüfe, ob das Verzeichnis vorhanden ist
if [[ ! -d "opensim" ]]; then
echo -e "\033[31m❗Fehler: Das Verzeichnis 'opensim' existiert nicht\033[0m"
return 1
fi
# Prüfe, ob im Verzeichnis 'opensim/bin' die Dateien OpenSim.dll und Robust.dll vorhanden sind
if [[ ! -f "opensim/bin/OpenSim.dll" || ! -f "opensim/bin/Robust.dll" ]]; then
echo -e "\033[36m❗Fehler: Benötigte Dateien (OpenSim.dll und/oder Robust.dll) fehlen im Verzeichnis 'opensim/bin'\033[0m"
echo -e "\n\033[33m❓Haben Sie vergessen den OpenSimulator zuerst zu Kompilieren\033[0m"
return 1
fi
if [[ "$user_choice" == "yes" ]]; then
echo "OpenSimulator wird gestoppt..."
opensimstop
sleep 30
echo "OpenSimulator wird kopiert..."
opensimcopy
echo "OpenSimulator wird gestartet..."
opensimstart
echo "✔ Upgrade abgeschlossen."
else
echo "Upgrade vom Benutzer abgebrochen."
fi
}
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Bereinigen des OpenSimulators Grids
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
function dataclean() {
echo -e "\033[32m"
@@ -894,9 +934,9 @@ WARNUNG
esac
}
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Konfigurationen
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
# Funktion zur Generierung von UUIDs
function generate_uuid() {
@@ -1298,9 +1338,12 @@ function setopensim() {
clean_config "$opensim_ini"
# Konfiguration mit crudini setzen
#Const-Konfiguration
crudini --set "$opensim_ini" Const BaseHostname "\"$system_ip\""
crudini --set "$opensim_ini" Const BaseURL "\"http://\${Const|BaseHostname}\""
crudini --set "$opensim_ini" Const PublicPort "\"9000\""
#crudini --set "$opensim_ini" Const PublicPort "\"9000\""
crudini --set "$opensim_ini" Const PublicPort "\"8002\""
crudini --set "$opensim_ini" Const PrivURL "\"\${Const|BaseURL}\""
crudini --set "$opensim_ini" Const PrivatePort "\"8003\""
@@ -1377,24 +1420,26 @@ function setgridcommon() {
fi
if [ -f "$gridcommon_example" ]; then
cp "$gridcommon_example" "$gridcommon_ini"
echo "$gridcommon_example wurde nach $gridcommon_ini kopiert."
# 1. Erstelle neue GridCommon.ini mit Const-Bereich
echo "[Const]" > "$gridcommon_ini"
crudini --set "$gridcommon_ini" Const BaseHostname "\"$system_ip\""
crudini --set "$gridcommon_ini" Const BaseURL "\"http://\${Const|BaseHostname}\""
crudini --set "$gridcommon_ini" Const PublicPort "\"8002\""
crudini --set "$gridcommon_ini" Const PrivatePort "\"8003\""
# 2. Füge eine Leerzeile ein für bessere Lesbarkeit
echo "" >> "$gridcommon_ini"
# 3. Füge den kompletten Inhalt der Beispiel-Datei hinzu
cat "$gridcommon_example" >> "$gridcommon_ini"
echo "GridCommon.ini wurde erstellt mit Const-Bereich und Inhalt von $gridcommon_example."
else
echo "Warnung: $gridcommon_example nicht gefunden! Überspringe sim$i."
continue
fi
clean_config "$gridcommon_ini"
# Ersetze die erste Zeile mit [Const], falls sie existiert
sed -i 's/^; This is the main configuration file for an instance of OpenSim running in grid mode$/[Const]/' "$gridcommon_ini"
# Konfiguration setzen
crudini --set "$gridcommon_ini" Const BaseHostname "\"$system_ip\""
crudini --set "$gridcommon_ini" Const BaseURL "\"http://\${Const|BaseHostname}\""
crudini --set "$gridcommon_ini" Const PublicPort "\"8002\""
crudini --set "$gridcommon_ini" Const PrivatePort "\"8003\""
echo "Konfiguration von GridCommon.ini für $sim_dir erfolgreich abgeschlossen."
fi
done
@@ -1452,7 +1497,7 @@ function setwelcome() {
cat > "$welcome_ini" << EOF
[Welcome Area]
RegionUUID = $region_uuid
Location = 1000,1000
Location = 3000,3000
SizeX = 256
SizeY = 256
SizeZ = 256
@@ -1511,15 +1556,6 @@ EOF
done
}
function configall() {
setrobusthg
setopensim
setgridcommon
setflotsamcache
setosslenable
setwelcome
}
function clean_comments_and_empty_lines() {
echo -e "\e[33mBereinige Kommentare und Leerzeilen in allen Konfigurationsdateien...\e[0m"
@@ -1532,9 +1568,13 @@ function clean_comments_and_empty_lines() {
# Liste aller relevanten Konfigurationsdateien
config_files=(
"${sim_dir}/bin/Robust.ini"
"${sim_dir}/bin/Robust.HG.ini"
"${sim_dir}/bin/OpenSim.ini"
"${sim_dir}/bin/Robust.ini.example"
"${sim_dir}/bin/Robust.HG.ini.example"
"${sim_dir}/bin/OpenSim.ini.example"
"${sim_dir}/bin/config-include/FlotsamCache.ini.example"
"${sim_dir}/bin/config-include/GridCommon.ini.example"
"${sim_dir}/bin/config-include/osslEnable.ini.example"
"${sim_dir}/bin/config-include/StandaloneCommon.ini.example"
)
# Jede Konfigurationsdatei bearbeiten
@@ -1660,9 +1700,139 @@ function cleanall() {
fi
}
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
#* ZUSAMMENFASSUNG DER FUNKTIONEN NACH PAKETGRUPPEN
#?──────────────────────────────────────────────────────────────────────────────────────────
#! Jede Gruppe kapselt logisch zusammenhängende Aufgaben.
#! Aufrufreihenfolge ist teilweise kritisch (z.B. muss 'opensimbuild' vor 'opensimcopy').
#?──────────────────────────────────────────────────────────────────────────────────────────
#! ┌─────────────────────────────────────────────────────────────────┐
#! │ [1] SYSTEMVORBEREITUNG │
#! └─────────────────────────────────────────────────────────────────┘
# ├── servercheck : Prüft Systemvoraussetzungen (RAM, CPU, Distro)
# ├── createdirectory : Legt Basisverzeichnisstruktur an
# └── sqlsetup : Konfiguriert Datenbank (MySQL/PostgreSQL)
#! ┌─────────────────────────────────────────────────────────────────┐
#! │ [2] QUELLCODE-MANAGEMENT │
#! └─────────────────────────────────────────────────────────────────┘
# ├── opensimgit : Klont OpenSimulator-Quellcode (Git)
# └── moneygit : Klont Währungssystem-Plugin (falls benötigt)
#! ┌─────────────────────────────────────────────────────────────────┐
#! │ [3] BUILD-PROZESS │
#! └─────────────────────────────────────────────────────────────────┘
# └── opensimbuild : Kompiliert OpenSimulator (Mono/XBuild)
#! ┌─────────────────────────────────────────────────────────────────┐
#! │ [4] KONFIGURATION │
#! └─────────────────────────────────────────────────────────────────┘
# ├── regionsconfig : Erstellt Basis-Regionenkonfiguration
# ├── setwelcome : Setzt Willkommensnachricht
# ├── setrobusthg : Konfiguriert Robust-Service für HG
# ├── setopensim : Server-Port-Konfiguration (TODO: pro Sim)
# ├── setgridcommon : Grid-Kernparameter (TODO: DB-Separierung)
# ├── setflotsamcache : Cache-Einstellungen
# └── setosslenable : Aktiviert OSSL (TODO: Grundeinstellungen)
#! ┌─────────────────────────────────────────────────────────────────┐
#! │ [5] DEPLOYMENT │
#! └─────────────────────────────────────────────────────────────────┘
# └── opensimcopy : Kopiert Binaries an Zielorte
#! ┌─────────────────────────────────────────────────────────────────┐
#! │ [6] AUTOMATISIERUNG │
#! └─────────────────────────────────────────────────────────────────┘
# └── setcrontab : Richtet Auto-Start ein (Cronjob)
#?──────────────────────────────────────────────────────────────────────────────────────────
#* NUTZUNGSHINWEISE:
#! 1. Einzelaufruf : bash osmtool.sh funktion [FUNKTIONSNAME]
#! 2. Komplettlauf : bash osmtool.sh autosetinstall (fragt Bestätigung ab)
#?──────────────────────────────────────────────────────────────────────────────────────────
function standalonerestart() {
standalonestart
sleep 30
standalonestop
}
# OpenSim neu starten
function opensimrestart() {
opensimstop
sleep 30 # Kurze Pause, um sicherzustellen, dass alles gestoppt wurde
logclean
sleep 15 # Kurze Pause, um sicherzustellen, dass alles gelöscht wurde
opensimstart
echo "Welche sim Regionen sind gestartet?:"
screen -ls
}
function configall() {
setrobusthg
setopensim
setgridcommon
setflotsamcache
setosslenable
setwelcome
}
function autosetinstall() {
# Komplette Server Installation
echo -e "\033[1;33mWARNUNG: Dies wird den gesamten OpenSimulator-Server installieren und konfigurieren.\033[0m"
echo "Möchten Sie fortfahren? [j/N] "
read -r antwort
# Fallback für Leerzeichen/Leerstring (Standard: Nein)
if [[ "${antwort,,}" != "j" ]]; then
echo -e "\033[31mAbbruch: Installation wurde nicht bestätigt.\033[0m"
return 1
fi
echo -e "\033[32mStarte Installation...\033[0m"
servercheck
## Bestandteile des OpenSimulators herunterladen.
opensimgit
moneygit
## Das eigentliche Bauen des OpenSimulators.
opensimbuild
## Verzeichnisse füllen.
createdirectory
sqlsetup
opensimcopy
## Konfigurieren der Voreinstellungen
regionsconfig
setwelcome
setrobusthg
setopensim # todo: Jede Sim benötigt ihren eigenen Port.
setgridcommon # todo: Jede Sim benötigt eine eigene Datenbank.
setflotsamcache
setosslenable # todo: Grundeinstellungen fehlen.
## Automatischer Betrieb des OpenSimulators.
setcrontab
echo -e "\033[1;32mFertig! Der Server startet spätestens nach 30 Minuten vollautomatisch.\033[0m"
}
function reboot() {
echo "Server wird jetzt heruntergefahren und neu gestartet!"
# Stoppen des ganzen OpenSim Grids.
opensimstop
sleep 30
# Starte den Server neu.
shutdown -r now
}
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Hilfefunktionen
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
function help () {
echo -e "\e[36mOpenSim Grid Starten Stoppen und Restarten:\e[0m"
@@ -1706,19 +1876,99 @@ function help () {
echo " "
}
#──────────────────────────────────────────────────────────────────────────────────────────
function colortest(){
echo -e "\033[32m Symbole für Statusanzeigen\033[0m"
echo -e "Pfeile: → ← ↑ ↓ ➔ ➜ ➤ ➣ ➢ ➠"
echo -e "Kreise: ○ ● ⭘ ◯ ◎ ⚪ ⚫"
echo -e "Quadrate: ■ □ ▪ ▫ ⬛ ⬜"
echo -e "Sterne: ★ ☆ ✦ ✧ ✪ ✩ ✫ ✯ ✰"
echo -e "Haken & Kreuze: ✓ ✕ ✘ ❌ ✅ ❎"
echo -e "Uhren & Zeit: ⏳ ⌛ ⏰ 🕒 🕔 🕗"
echo -e "Zahlen in Kreisen: ➀ ➁ ➂ ➃ ➄ ➅ ➆ ➇ ➈ ➉"
echo -e "Punkte & Marker: • ◦ ∙ ☐ ☒"
echo -e "Wetter/Status (optional): ⚡ ☔"
echo -e "Fortschritt (Balken-Stil): ▄ █"
echo -e "Linien/Trenner: ─ ━ │ ┃ ┄ ┅ ┆ ┇ ┈ ┉ ┊ ┋"
echo " "
echo -e "✓ \033[32mErfolgreich abgeschlossen!\033[0m"
echo -e "✘ \033[31mFehler aufgetreten.\033[0m"
echo -e "⏳ \033[33mBitte warten...\033[0m"
echo " "
echo -e "\033[1m Textfarben \033[0m"
echo -e "\033[30m Schwarz\033[0m"
echo -e "\033[31m Rot\033[0m"
echo -e "\033[32m Grün\033[0m"
echo -e "\033[33m Gelb\033[0m"
echo -e "\033[34m Blau\033[0m"
echo -e "\033[35m Magenta\033[0m"
echo -e "\033[36m Cyan\033[0m"
echo -e "\033[37m Weiß\033[0m"
echo " "
echo -e "\033[1m Hintergrundfarben \033[0m"
echo -e "\033[40m Schwarzer Hintergrund\033[0m"
echo -e "\033[41m Roter Hintergrund\033[0m"
echo -e "\033[42m Grüner Hintergrund\033[0m"
echo -e "\033[43m Gelber Hintergrund\033[0m"
echo -e "\033[44m Blauer Hintergrund\033[0m"
echo -e "\033[45m Magenta Hintergrund\033[0m"
echo -e "\033[46m Cyan Hintergrund\033[0m"
echo -e "\033[47m Weißer Hintergrund\033[0m"
echo " "
echo -e "\033[1m Formatierungen \033[0m"
echo -e "\033[1m Fett (bold)\033[0m"
echo -e "\033[2m Schwach (dim)\033[0m"
echo -e "\033[3m Kursiv (italic, nicht überall unterstützt)\033[0m"
echo -e "\033[4m Unterstrichen (underline)\033[0m"
echo -e "\033[7m Negativ (invert colors)\033[0m"
echo -e "\033[0m Zurücksetzen (reset)"
echo " "
echo -e "\033[1m Textfarben \033[0m"
echo -e "\033[30m Schwarz\033[0m \033[90m Hellgrau (Bright-Schwarz)\033[0m"
echo -e "\033[31m Rot\033[0m \033[91m Hellrot (Bright-Rot)\033[0m"
echo -e "\033[32m Grün\033[0m \033[92m Hellgrün (Bright-Grün)\033[0m"
echo -e "\033[33m Gelb\033[0m \033[93m Hellgelb (Bright-Gelb)\033[0m"
echo -e "\033[34m Blau\033[0m \033[94m Hellblau (Bright-Blau)\033[0m"
echo -e "\033[35m Magenta\033[0m \033[95m Hellmagenta (Bright-Magenta)\033[0m"
echo -e "\033[36m Cyan\033[0m \033[96m Hellcyan (Bright-Cyan)\033[0m"
echo -e "\033[37m Weiß\033[0m \033[97m Hellweiß (Bright-Weiß)\033[0m"
echo " "
echo -e "\n\033[1m Hintergrundfarben \033[0m"
echo -e "\033[40m Schwarzer Hintergrund\033[0m \033[100m Heller schwarzer Hintergrund\033[0m"
echo -e "\033[41m Roter Hintergrund\033[0m \033[101m Heller roter Hintergrund\033[0m"
echo -e "\033[42m Grüner Hintergrund\033[0m \033[102m Heller grüner Hintergrund\033[0m"
echo -e "\033[43m Gelber Hintergrund\033[0m \033[103m Heller gelber Hintergrund\033[0m"
echo -e "\033[44m Blauer Hintergrund\033[0m \033[104m Heller blauer Hintergrund\033[0m"
echo -e "\033[45m Magenta Hintergrund\033[0m \033[105m Heller magenta Hintergrund\033[0m"
echo -e "\033[46m Cyan Hintergrund\033[0m \033[106m Heller cyan Hintergrund\033[0m"
echo -e "\033[47m Weißer Hintergrund\033[0m \033[107m Heller weißer Hintergrund\033[0m"
echo " "
echo -e "\n\033[1m Kombinationen \033[0m"
echo -e "\033[1;91;44m HELLROTER TEXT AUF BLAUEM HINTERGRUND \033[0m"
echo -e "\033[4;93;105m UNTERSTRICHEN + HELLGELB AUF HELLMAGENTA \033[0m"
echo " "
}
#?──────────────────────────────────────────────────────────────────────────────────────────
#* Eingabeauswertung
#──────────────────────────────────────────────────────────────────────────────────────────
#?──────────────────────────────────────────────────────────────────────────────────────────
case $KOMMANDO in
servercheck) servercheck ;;
createdirectory) createdirectory ;;
mariasetup) mariasetup ;;
sqlsetup) sqlsetup ;;
setcrontab) setcrontab ;;
opensimgitcopy) opensimgitcopy ;;
moneygitcopy) moneygitcopy ;;
opensimgitcopy|opensimgit) opensimgit ;;
moneygitcopy|moneygit) moneygit ;;
opensimbuild) opensimbuild ;;
opensimcopy) opensimcopy ;;
opensimupgrade) opensimupgrade ;;
config_menu|configure|configureopensim) config_menu ;; # Die automatische konfiguration zu testzwecken.
cleandoublecomments) cleandoublecomments ;;
configclean|clean_comments_and_empty_lines) clean_comments_and_empty_lines ;;
@@ -1732,7 +1982,9 @@ case $KOMMANDO in
setflotsamcache) setflotsamcache ;; # Die automatische konfiguration zu testzwecken.
setosslenable) setosslenable ;; # Die automatische konfiguration zu testzwecken.
setwelcome) setwelcome ;; # Die automatische konfiguration zu testzwecken.
configall) configall ;; # Die automatische konfiguration zu testzwecken.
autosetinstall) autosetinstall ;;
start|opensimstart) opensimstart ;;
stop|opensimstop) opensimstop ;;
@@ -1754,6 +2006,7 @@ case $KOMMANDO in
regionsclean) regionsclean ;;
cleanall) cleanall ;;
renamefiles) renamefiles ;; # Die automatische konfiguration zu testzwecken.
colortest) colortest ;;
h|help|hilfe|*) help ;;
esac