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
|
## Development
|
||||||
|
|
||||||
Two terminals:
|
One command (installs frontend deps on first run, Ctrl-C stops everything):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./dev.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Or manually, in two terminals:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go run ./cmd/spreadlab # API on localhost:8080
|
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