Files
crumbmissions/start_crumbblocks.sh
2025-12-23 20:52:00 +01:00

72 lines
2.0 KiB
Bash
Executable File

#!/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