dev: one-command local stack via dev.sh
Starts the Go API and the Vite dev server as background jobs; 'wait -n' returns when the first one exits and the EXIT trap kills the rest, so one Ctrl-C (or either server crashing) stops everything. Installs web/node_modules on first run. Verified: both ports respond, SIGINT leaves no orphan processes.
This commit is contained in:
parent
7c16e6ea4f
commit
a57e729c10
2 changed files with 29 additions and 1 deletions
|
|
@ -17,7 +17,13 @@ Status: milestone 2, thin API + parity page done.
|
|||
|
||||
## Development
|
||||
|
||||
Two terminals:
|
||||
One command (installs frontend deps on first run, Ctrl-C stops everything):
|
||||
|
||||
```sh
|
||||
./dev.sh
|
||||
```
|
||||
|
||||
Or manually, in two terminals:
|
||||
|
||||
```sh
|
||||
go run ./cmd/spreadlab # API on localhost:8080
|
||||
|
|
|
|||
22
dev.sh
Executable file
22
dev.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env bash
|
||||
# Local dev stack in one command:
|
||||
# - Go API on localhost:8080
|
||||
# - Vite dev server on localhost:5173 (proxies /api to the Go server)
|
||||
# One Ctrl-C stops everything; if either server dies, the other is stopped.
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
if [ ! -d web/node_modules ]; then
|
||||
echo "dev.sh: first run, installing frontend dependencies..."
|
||||
(cd web && npm install)
|
||||
fi
|
||||
|
||||
# On exit (Ctrl-C included), stop whichever background job is still running.
|
||||
trap 'kill $(jobs -p) 2>/dev/null' EXIT
|
||||
|
||||
go run ./cmd/spreadlab &
|
||||
(cd web && npm run dev) &
|
||||
|
||||
# wait -n returns when the FIRST job exits; the trap then cleans up the rest.
|
||||
wait -n
|
||||
Loading…
Add table
Add a link
Reference in a new issue