From b8a283a177b274c87750b293118a9e6bff80a801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ana=C3=AFs=20Saraiva?= <53227802+Kisakay@users.noreply.github.com> Date: Mon, 19 Oct 2026 20:11:09 +0200 Subject: [PATCH] server: start.sh/setup.sh relancent automatiquement via nix-shell si Java 25 absent 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. --- server/setup.sh | 20 +++++++++++++------- server/start.sh | 11 ++++++++--- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/server/setup.sh b/server/setup.sh index 5dbd3c3..0dde386 100755 --- a/server/setup.sh +++ b/server/setup.sh @@ -1,9 +1,21 @@ # SurviePote — installe/repare le runtime serveur Fabric (MC 26.3 / Loader 0.20.0). # Les jars vanilla/Fabric, libraries/ et versions/ ne sont PAS versionnes (voir .gitignore) : # ce script les (re)genere dans le dossier courant. A lancer une fois sur le serveur, avant ./start.sh. -# Requiert Java (idealement Java 25, ex. via nix-shell à la racine du repo). set -e cd "$(dirname "$0")" +ROOT="$(cd .. && pwd)" + +# Java absent -> on se replace dans le shell Nix du repo (NixOS / nix-shell). +if ! command -v java >/dev/null 2>&1; then + if [ -z "${SURVIEPOTE_NIX:-}" ] && command -v nix-shell >/dev/null 2>&1 && [ -f "$ROOT/shell.nix" ]; then + echo "Java absent -> relance dans le shell Nix du repo (nix-shell)..." + export SURVIEPOTE_NIX=1 + exec nix-shell "$ROOT" --run "bash '$ROOT/server/setup.sh'" + fi + echo "ERREUR: java introuvable." + echo "Depuis la racine du repo : nix-shell . --run 'bash server/setup.sh'" + exit 1 +fi MC_VERSION=26.3 LOADER_VERSION=0.20.0 @@ -16,12 +28,6 @@ if [ -f "$LAUNCH_JAR" ]; then exit 0 fi -command -v java >/dev/null 2>&1 || { - echo "ERREUR: java introuvable." - echo "Depuis la racine du repo : nix-shell . --run 'bash server/setup.sh'" - exit 1 -} - if [ ! -f "$INSTALLER_JAR" ]; then echo "== Telechargement de fabric-installer $INSTALLER_VERSION ==" curl -fSL -o "$INSTALLER_JAR" \ diff --git a/server/start.sh b/server/start.sh index 7160dce..21a1cdd 100755 --- a/server/start.sh +++ b/server/start.sh @@ -1,11 +1,16 @@ # SurviePote — lancement serveur Fabric MC 26.3 / Loader 0.20.0 / Java 25 -# Recommandé : nix-shell (voir ../shell.nix + ../.envrc) pour avoir Java 25 + Node 22. cd "$(dirname "$0")" +ROOT="$(cd .. && pwd)" -# MC 26.3 exige Java 25 (class file version 69.0). +# 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 via nix-shell : nix-shell .. --run './start.sh' (ou direnv allow à la racine)." + echo "Lance depuis la racine du repo : nix-shell . --run 'bash server/start.sh'" exit 1 fi