Files
2026-01-26 19:24:43 +00:00

74 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BACKEND_DIR="${ROOT_DIR}/backend"
FRONTEND_DIR="${ROOT_DIR}/frontend"
BACKEND_PORT="${BACKEND_PORT:-5001}"
FRONTEND_PORT="${FRONTEND_PORT:-5200}"
BACKEND_HOST="${BACKEND_HOST:-127.0.0.1}"
BACKEND_URL="http://${BACKEND_HOST}:${BACKEND_PORT}"
read -r -p "Backend: npm install ausfuehren? (y/N) " backend_install_choice
if [[ "$backend_install_choice" =~ ^([YyJj]|[Yy]es|[Jj]a)$ ]]; then
BACKEND_NPM_INSTALL="1"
else
BACKEND_NPM_INSTALL="0"
fi
read -r -p "Frontend: npm install ausfuehren? (y/N) " frontend_install_choice
if [[ "$frontend_install_choice" =~ ^([YyJj]|[Yy]es|[Jj]a)$ ]]; then
FRONTEND_NPM_INSTALL="1"
else
FRONTEND_NPM_INSTALL="0"
fi
cleanup() {
echo ""
echo "Stopping processes..."
if [[ -n "${BACKEND_PID:-}" ]]; then
kill -TERM "$BACKEND_PID" 2>/dev/null || true
wait "$BACKEND_PID" 2>/dev/null || true
fi
if [[ -n "${FRONTEND_PID:-}" ]]; then
kill -TERM "$FRONTEND_PID" 2>/dev/null || true
wait "$FRONTEND_PID" 2>/dev/null || true
fi
}
trap cleanup INT TERM EXIT
echo "Starting backend on port ${BACKEND_PORT}..."
(
cd "$BACKEND_DIR"
if [[ "$BACKEND_NPM_INSTALL" == "1" ]]; then
npm install
else
echo "Backend npm install uebersprungen."
fi
PORT="$BACKEND_PORT" npm run dev
) &
BACKEND_PID=$!
echo "Starting frontend on port ${FRONTEND_PORT}..."
(
cd "$FRONTEND_DIR"
if [[ "$FRONTEND_NPM_INSTALL" == "1" ]]; then
npm install
else
echo "Frontend npm install uebersprungen."
fi
VITE_BACKEND_URL="$BACKEND_URL" npm run dev -- --port "$FRONTEND_PORT" --strictPort
) &
FRONTEND_PID=$!
echo ""
echo "Backend PID: $BACKEND_PID"
echo "Frontend PID: $FRONTEND_PID"
echo "Press Ctrl+C to stop everything"
echo ""
wait "$BACKEND_PID" "$FRONTEND_PID"