#!/bin/bash # 🌍 Startet den Crumbblocks Server # Damit die Clipboard-API funktioniert, brauchen wir "localhost". # Dieses Script startet einen mini Python-Server und öffnet den Browser. # Waldwächter laden (für Pfade, optional) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="${SCRIPT_DIR}" # Wir starten direkt im Root # Port PORT=8123 URL="http://localhost:${PORT}/crumbblocks/rainbow_counter.html" clear echo "🌍 CRUMBBLOCKS SERVER START" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Server-Auswahl (PHP bevorzugt via User-Request, sonst Python) if command -v php &>/dev/null; then SERVER_CMD="php -S localhost:$PORT" echo "🐘 PHP gefunden! Starte PHP Development Server..." elif command -v python3 &>/dev/null; then SERVER_CMD="python3 -m http.server $PORT" echo "🐍 Python 3 gefunden! Starte http.server..." elif command -v python &>/dev/null; then SERVER_CMD="python -m http.server $PORT" echo "🐍 Python gefunden! Starte http.server..." else echo "❌ Weder PHP noch Python gefunden." echo "Bitte installiere eines von beiden für den lokalen Server." exit 1 fi echo "🚀 Starte Server auf Port $PORT..." echo "👉 $URL" echo "" echo "Drücke [CTRL+C] um den Server zu stoppen." echo "" # Server im Hintergrund starten cd "$ROOT_DIR" # Wir führen den Befehl aus der Variable aus (shell splitting allowed here) $SERVER_CMD >/dev/null 2>&1 & SERVER_PID=$! # Warten bis Server da ist (kurz) sleep 1 # Browser öffnen if [[ "$OSTYPE" == "darwin"* ]]; then open "$URL" elif command -v xdg-open &>/dev/null; then xdg-open "$URL" else echo "⚠️ Konnte Browser nicht automatisch öffnen." echo "Bitte öffne: $URL" fi # Auf CTRL+C warten (Trap für Cleanup) cleanup() { echo "" echo "🛑 Stoppe Server (PID $SERVER_PID)..." kill "$SERVER_PID" 2>/dev/null echo "✅ Tschüss!" exit } trap cleanup SIGINT # Endlosschleife damit Script offen bleibt wait $SERVER_PID