Sur NixOS, sans nix-shell le java systeme manque souvent. Le script detecte l'absence de Java 25 et se re-execute dans le shell Nix du repo (shell.nix), avec garde SURVIEPOTE_NIX pour eviter toute boucle.
33 lines
1.2 KiB
Bash
Executable File
33 lines
1.2 KiB
Bash
Executable File
# SurviePote — lancement serveur Fabric MC 26.3 / Loader 0.20.0 / Java 25
|
|
cd "$(dirname "$0")"
|
|
ROOT="$(cd .. && pwd)"
|
|
|
|
# Java 25 absent -> on se replace dans le shell Nix du repo (NixOS / nix-shell).
|
|
if ! java -version 2>&1 | grep -q 'version "25'; then
|
|
if [ -z "${SURVIEPOTE_NIX:-}" ] && command -v nix-shell >/dev/null 2>&1 && [ -f "$ROOT/shell.nix" ]; then
|
|
echo "Java 25 absent -> relance dans le shell Nix du repo (nix-shell)..."
|
|
export SURVIEPOTE_NIX=1
|
|
exec nix-shell "$ROOT" --run "bash '$ROOT/server/start.sh'"
|
|
fi
|
|
echo "ERREUR: Java 25 requis (java actuel : $(java -version 2>&1 | head -1))."
|
|
echo "Lance depuis la racine du repo : nix-shell . --run 'bash server/start.sh'"
|
|
exit 1
|
|
fi
|
|
|
|
# Runtime absent (clone neuf) -> installation automatique.
|
|
if [ ! -f fabric-server-launch.jar ] && [ ! -f server.jar ]; then
|
|
echo "Runtime serveur absent -> installation automatique (setup.sh)..."
|
|
bash setup.sh
|
|
fi
|
|
|
|
if [ -f fabric-server-launch.jar ]; then
|
|
JAR=fabric-server-launch.jar
|
|
elif [ -f server.jar ]; then
|
|
JAR=server.jar
|
|
else
|
|
echo "Aucun jar serveur trouve (fabric-server-launch.jar / server.jar)."
|
|
exit 1
|
|
fi
|
|
|
|
java -Xms4G -Xmx4G -jar "$JAR" nogui
|