72 lines
2.0 KiB
Bash
Executable File
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
|