ROOT = $(CURDIR)
BIN = $(ROOT)/bin

### buf ###

.PHONY: bin/buf
bin/buf:
	GOBIN=$(BIN) go install github.com/bufbuild/buf/cmd/buf@v1.55.1

.PHONY: proto
proto: generate-proto format-proto lint-proto

.PHONY: generate-proto
generate-proto: bin/buf install-gotag
	PATH="$(BIN):$(PATH)" buf generate
	PATH="$(BIN):$(PATH)" buf generate --template buf.gen.tag.yaml

.PHONY: format-proto
format-proto: bin/buf
	$(BIN)/buf format -w

.PHONY: lint-proto
lint-proto: bin/buf
	$(BIN)/buf lint

install-gotag:
	GOBIN=$(BIN) go install github.com/srikrsna/protoc-gen-gotag@v1.0.2
