@@ -8,31 +8,31 @@ DEFAULT_OLLAMA_BASE_URL="http://localhost:11434"
88DEFAULT_OLLAMA_MODEL=" llama3.1:8b"
99
1010if ! command -v uv > /dev/null 2>&1 ; then
11- echo " uv is required. Run scripts/bootstrap.sh first." >&2
12- exit 1
11+ echo " uv is required. Run scripts/bootstrap.sh first." >&2
12+ exit 1
1313fi
1414
1515if ! command -v npm > /dev/null 2>&1 ; then
16- echo " npm is required to launch the Electron client." >&2
17- exit 1
16+ echo " npm is required to launch the Electron client." >&2
17+ exit 1
1818fi
1919
2020cleanup () {
21- local exit_code=$?
22- if [[ -n " ${API_PID:- } " ]] && ps -p " ${API_PID} " > /dev/null 2>&1 ; then
23- kill " ${API_PID} " > /dev/null 2>&1 || true
24- fi
25- if [[ -n " ${PYTC_PID:- } " ]] && ps -p " ${PYTC_PID} " > /dev/null 2>&1 ; then
26- kill " ${PYTC_PID} " > /dev/null 2>&1 || true
27- fi
28- if [[ -n " ${DATA_SERVER_PID:- } " ]] && ps -p " ${DATA_SERVER_PID} " > /dev/null 2>&1 ; then
29- kill " ${DATA_SERVER_PID} " > /dev/null 2>&1 || true
30- fi
31- if [[ -n " ${REACT_PID:- } " ]] && ps -p " ${REACT_PID} " > /dev/null 2>&1 ; then
32- kill " ${REACT_PID} " > /dev/null 2>&1 || true
33- fi
34- wait || true
35- exit " ${exit_code} "
21+ local exit_code=$?
22+ if [[ -n " ${API_PID:- } " ]] && ps -p " ${API_PID} " > /dev/null 2>&1 ; then
23+ kill " ${API_PID} " > /dev/null 2>&1 || true
24+ fi
25+ if [[ -n " ${PYTC_PID:- } " ]] && ps -p " ${PYTC_PID} " > /dev/null 2>&1 ; then
26+ kill " ${PYTC_PID} " > /dev/null 2>&1 || true
27+ fi
28+ if [[ -n " ${DATA_SERVER_PID:- } " ]] && ps -p " ${DATA_SERVER_PID} " > /dev/null 2>&1 ; then
29+ kill " ${DATA_SERVER_PID} " > /dev/null 2>&1 || true
30+ fi
31+ if [[ -n " ${REACT_PID:- } " ]] && ps -p " ${REACT_PID} " > /dev/null 2>&1 ; then
32+ kill " ${REACT_PID} " > /dev/null 2>&1 || true
33+ fi
34+ wait || true
35+ exit " ${exit_code} "
3636}
3737
3838trap cleanup EXIT INT TERM
@@ -43,8 +43,8 @@ DATA_SERVER_PID=$!
4343
4444echo " Starting API server (port 4242)..."
4545OLLAMA_BASE_URL=" ${OLLAMA_BASE_URL:- ${DEFAULT_OLLAMA_BASE_URL} } " \
46- OLLAMA_MODEL=" ${OLLAMA_MODEL:- ${DEFAULT_OLLAMA_MODEL} } " \
47- PYTHONDONTWRITEBYTECODE=1 uv run --directory " ${ROOT_DIR} " python -m server_api.main &
46+ OLLAMA_MODEL=" ${OLLAMA_MODEL:- ${DEFAULT_OLLAMA_MODEL} } " \
47+ PYTHONDONTWRITEBYTECODE=1 uv run --directory " ${ROOT_DIR} " python -m server_api.main &
4848API_PID=$!
4949
5050echo " Starting PyTC server (port 4243)..."
@@ -53,33 +53,33 @@ PYTC_PID=$!
5353
5454echo " Starting React dev server (port 3000)..."
5555pushd " ${CLIENT_DIR} " > /dev/null
56- PORT=3000 BROWSER=none npm start > react.log 2>&1 &
56+ PORT=3000 BROWSER=none npm start > react.log 2>&1 &
5757REACT_PID=$!
5858
5959# Robust readiness check with progress feedback
6060wait_for_react () {
61- local max_attempts=60
62- local attempt=1
63- while [[ ${attempt} -le ${max_attempts} ]]; do
64- if curl -sf http://localhost:3000 > /dev/null 2>&1 ; then
65- echo " React dev server is ready!"
66- return 0
67- fi
68- echo " Waiting for React (attempt ${attempt} /${max_attempts} )..."
69- attempt=$(( attempt + 1 ))
70- sleep 1
71- done
72- echo " ERROR: React dev server failed to start within ${max_attempts} seconds" >&2
73- echo " Check client/react.log for details." >&2
74- return 1
61+ local max_attempts=60
62+ local attempt=1
63+ while [[ ${attempt} -le ${max_attempts} ]]; do
64+ if curl -sf http://localhost:3000 > /dev/null 2>&1 ; then
65+ echo " React dev server is ready!"
66+ return 0
67+ fi
68+ echo " Waiting for React (attempt ${attempt} /${max_attempts} )..."
69+ attempt=$(( attempt + 1 ))
70+ sleep 1
71+ done
72+ echo " ERROR: React dev server failed to start within ${max_attempts} seconds" >&2
73+ echo " Check client/react.log for details." >&2
74+ return 1
7575}
7676
7777if wait_for_react; then
78- echo " Launching Electron client..."
79- ENVIRONMENT=development npm run electron
78+ echo " Launching Electron client..."
79+ ENVIRONMENT=development npm run electron
8080else
81- echo " Failed to start React dev server" >&2
82- exit 1
81+ echo " Failed to start React dev server" >&2
82+ exit 1
8383fi
8484
8585popd > /dev/null
0 commit comments