.PHONY: dev build test fmt vet lint sqlc migrate-up migrate-down

dev:
	@trap 'kill 0' EXIT; \
	(cd web && pnpm dev) & \
	go run ./cmd/solopm serve & \
	wait

build:
	cd web && pnpm install && pnpm build
	go build -ldflags "-X main.version=$$(git describe --tags --always --dirty 2>/dev/null || echo dev)" -o solopm ./cmd/solopm

test:
	go test ./...

fmt:
	gofmt -l -w .

vet:
	go vet ./...

lint: vet
	golangci-lint run ./...
	cd web && pnpm exec vue-tsc -b --noEmit

sqlc:
	sqlc generate

migrate-up:
	go run ./cmd/solopm migrate up

migrate-down:
	go run ./cmd/solopm migrate down
