forked from Jos100703/Anthropic-hack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_website_task.sh
More file actions
executable file
·69 lines (55 loc) · 1.81 KB
/
Copy pathrun_website_task.sh
File metadata and controls
executable file
·69 lines (55 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$ROOT_DIR"
if [[ -f "hack_venv/bin/activate" ]]; then
# shellcheck disable=SC1091
source "hack_venv/bin/activate"
fi
BACKEND_HOST="${BACKEND_HOST:-0.0.0.0}"
BACKEND_PORT="${BACKEND_PORT:-8099}"
FRONTEND_HOST="${FRONTEND_HOST:-0.0.0.0}"
FRONTEND_PORT="${FRONTEND_PORT:-5173}"
INSTALL_FRONTEND_DEPS="${INSTALL_FRONTEND_DEPS:-1}"
BACKEND_DIR="$ROOT_DIR/webapp/backend"
FRONTEND_DIR="$ROOT_DIR/webapp/frontend"
if [[ ! -d "$BACKEND_DIR" ]]; then
echo "Backend directory not found: $BACKEND_DIR" >&2
exit 1
fi
if [[ ! -d "$FRONTEND_DIR" ]]; then
echo "Frontend directory not found: $FRONTEND_DIR" >&2
exit 1
fi
if [[ "$INSTALL_FRONTEND_DEPS" == "1" && ! -d "$FRONTEND_DIR/node_modules" ]]; then
echo "==> Installing frontend dependencies"
npm install --prefix "$FRONTEND_DIR"
fi
BACKEND_PID=""
FRONTEND_PID=""
cleanup() {
echo
echo "==> Stopping website processes"
if [[ -n "$FRONTEND_PID" ]] && kill -0 "$FRONTEND_PID" 2>/dev/null; then
kill "$FRONTEND_PID" 2>/dev/null || true
fi
if [[ -n "$BACKEND_PID" ]] && kill -0 "$BACKEND_PID" 2>/dev/null; then
kill "$BACKEND_PID" 2>/dev/null || true
fi
}
trap cleanup EXIT INT TERM
echo "==> Starting backend on http://$BACKEND_HOST:$BACKEND_PORT"
python -m uvicorn main:app \
--host "$BACKEND_HOST" \
--port "$BACKEND_PORT" \
--reload \
--app-dir "$BACKEND_DIR" &
BACKEND_PID=$!
echo "==> Starting frontend on http://$FRONTEND_HOST:$FRONTEND_PORT"
npm run dev --prefix "$FRONTEND_DIR" -- --host "$FRONTEND_HOST" --port "$FRONTEND_PORT" &
FRONTEND_PID=$!
echo "==> Website task running"
echo " Frontend: http://localhost:$FRONTEND_PORT"
echo " Backend: http://localhost:$BACKEND_PORT"
echo " Press Ctrl+C to stop"
wait "$BACKEND_PID" "$FRONTEND_PID"