2026-05-08 14:14:26 +05:30
|
|
|
.PHONY: build run serve test vet tidy clean web web-dev dev watch
|
2026-05-08 01:23:27 +05:30
|
|
|
|
|
|
|
|
BINARY := bin/flow
|
|
|
|
|
|
|
|
|
|
build: web
|
|
|
|
|
go build -o $(BINARY) ./cmd/flow
|
|
|
|
|
|
|
|
|
|
# Build only the Go binary, expecting web/dist to already exist.
|
|
|
|
|
build-go:
|
|
|
|
|
go build -o $(BINARY) ./cmd/flow
|
|
|
|
|
|
|
|
|
|
web:
|
|
|
|
|
cd web && (test -d node_modules || npm install --no-fund --no-audit --loglevel=error) && npm run build
|
|
|
|
|
|
|
|
|
|
web-dev:
|
|
|
|
|
cd web && (test -d node_modules || npm install --no-fund --no-audit --loglevel=error) && npm run dev
|
|
|
|
|
|
2026-05-08 14:14:26 +05:30
|
|
|
# `make dev` runs the Next.js dev server (auto-installs deps).
|
|
|
|
|
# In another terminal run `make watch` to hot-reload the Go API on :8080;
|
|
|
|
|
# the Next dev rewrite forwards /api/* requests to it.
|
2026-05-08 01:23:27 +05:30
|
|
|
dev: web-dev
|
|
|
|
|
|
|
|
|
|
serve: build-go
|
|
|
|
|
./$(BINARY) serve
|
|
|
|
|
|
2026-05-08 14:14:26 +05:30
|
|
|
# Hot-reload the Go server with air. Re-run on every *.go change.
|
|
|
|
|
# First time: `go install github.com/air-verse/air@latest`
|
|
|
|
|
watch:
|
|
|
|
|
@command -v air >/dev/null 2>&1 || { \
|
|
|
|
|
echo "installing air..."; \
|
|
|
|
|
go install github.com/air-verse/air@latest; \
|
|
|
|
|
}
|
|
|
|
|
air
|
|
|
|
|
|
2026-05-08 01:23:27 +05:30
|
|
|
run: build
|
|
|
|
|
./$(BINARY)
|
|
|
|
|
|
|
|
|
|
test:
|
|
|
|
|
go test ./... -count=1 -race
|
|
|
|
|
|
|
|
|
|
vet:
|
|
|
|
|
go vet ./...
|
|
|
|
|
|
|
|
|
|
tidy:
|
|
|
|
|
go mod tidy
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
rm -rf bin/ web/dist web/node_modules *.db *.db-shm *.db-wal coverage.out
|