#!/usr/bin/env bash # Development server script for HdM slides # Starts index server + marp servers for each course set -e # Configuration INDEX_PORT=1310 COURSE_B_PORT=1311 COURSE_C_PORT=1312 COURSE_DIR="courses" DEV_INDEX_DIR=".dev-index" # Colors RED='\033[0;31m' GREEN='\033[0;32m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Cleanup function cleanup() { echo -e "\n${RED}Shutting down servers...${NC}" kill $PID_INDEX $PID_B $PID_C 2>/dev/null || true exit 0 } # Kill existing processes on our ports kill_existing() { echo -e "${BLUE}Cleaning up existing processes...${NC}" # Kill marp processes first pkill -9 -f "marp-cli" 2>/dev/null || true pkill -f "python3 -m http.server" 2>/dev/null || true # Kill ports including marp's WebSocket ports (37717-37720 range) fuser -k $INDEX_PORT/tcp $COURSE_B_PORT/tcp $COURSE_C_PORT/tcp 2>/dev/null || true fuser -k 37717/tcp 37718/tcp 37719/tcp 37720/tcp 2>/dev/null || true sleep 2 } # Generate dev index generate_index() { mkdir -p "$DEV_INDEX_DIR" cat > "$DEV_INDEX_DIR/index.html" << 'EOF'
Development Server