.PHONY: build test vet lint proto proto-lint clean docker all devserver

LDFLAGS := -trimpath -ldflags="-s -w -X main.version=$(shell git describe --tags --always --dirty)"

mc-proxy:
	go build $(LDFLAGS) -o mc-proxy ./cmd/mc-proxy

mcproxyctl:
	go build -trimpath -ldflags="-s -w" -o mcproxyctl ./cmd/mcproxyctl

build:
	go build ./...

test:
	go test ./...

vet:
	go vet ./...

lint:
	golangci-lint run ./...

proto:
	protoc --go_out=. --go_opt=module=git.wntrmute.dev/kyle/mc-proxy \
		--go-grpc_out=. --go-grpc_opt=module=git.wntrmute.dev/kyle/mc-proxy \
		proto/mc_proxy/v1/*.proto

proto-lint:
	buf lint
	buf breaking --against '.git#branch=master,subdir=proto'

clean:
	rm -f mc-proxy mcproxyctl

docker:
	docker build --build-arg VERSION=$(shell git describe --tags --always --dirty) -t mc-proxy -f Dockerfile .

devserver: mc-proxy
	@mkdir -p srv
	@if [ ! -f srv/mc-proxy.toml ]; then cp mc-proxy.toml.example srv/mc-proxy.toml; echo "Created srv/mc-proxy.toml from example — edit before running."; fi
	./mc-proxy server --config srv/mc-proxy.toml

all: vet lint test mc-proxy
