74 lines
1.8 KiB
Bash
Executable File
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"
|