Files

55 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Launch the Dreamverse Next.js frontend in dev mode on port 5299
# (the devtools-enabled build the e2e tests target).
#
# Usage:
# bash launch_frontend.sh
# FRONTEND_MODE=dev bash launch_frontend.sh # plain dev (5299, no devtools)
# FRONTEND_MODE=single5s bash launch_frontend.sh # single-5s product mode
#
# The script ``cd``'s into ``web`` and shells out to npm. It runs
# ``npm ci`` only when ``node_modules/`` is missing so repeat
# launches are fast.
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
DREAMVERSE_ROOT="$(cd -- "${SCRIPT_DIR}/../.." && pwd)"
WEB_ROOT="${DREAMVERSE_ROOT}/web"
FRONTEND_MODE="${FRONTEND_MODE:-devtools}"
case "${FRONTEND_MODE}" in
devtools|dev|single5s) ;;
*)
echo "error: FRONTEND_MODE must be one of devtools|dev|single5s (got '${FRONTEND_MODE}')" >&2
exit 1
;;
esac
if [[ ! -d "${WEB_ROOT}" ]]; then
echo "error: web app not found at ${WEB_ROOT}" >&2
exit 1
fi
cd "${WEB_ROOT}"
if [[ ! -d node_modules ]]; then
echo "[launch-demo] node_modules missing — running npm ci"
npm ci
fi
case "${FRONTEND_MODE}" in
devtools)
echo "[launch-demo] starting Next.js dev:devtools (port 5299)"
exec npm run dev:devtools -- "$@"
;;
dev)
echo "[launch-demo] starting Next.js dev (port 5299)"
exec npm run dev -- "$@"
;;
single5s)
echo "[launch-demo] starting Next.js dev:single5s (port 5299)"
exec npm run dev:single5s -- "$@"
;;
esac