BUF_IMAGE ?= bufbuild/buf:1.47.2

.PHONY: format lint build validate-examples generate breaking

format:
	docker run --rm --user "$$(id -u):$$(id -g)" -e XDG_CACHE_HOME=/tmp \
		-v "$$(pwd):/workspace" -w /workspace $(BUF_IMAGE) format -w

lint:
	docker run --rm --user "$$(id -u):$$(id -g)" -e XDG_CACHE_HOME=/tmp \
		-v "$$(pwd):/workspace" -w /workspace $(BUF_IMAGE) lint

build:
	docker run --rm --user "$$(id -u):$$(id -g)" -e XDG_CACHE_HOME=/tmp \
		-v "$$(pwd):/workspace" -w /workspace $(BUF_IMAGE) build \
			-o descriptor.bin

validate-examples:
	./scripts/validate-examples.sh

generate:
	docker run --rm --user "$$(id -u):$$(id -g)" -e XDG_CACHE_HOME=/tmp \
		-v "$$(pwd):/workspace" -w /workspace $(BUF_IMAGE) generate

breaking:
	@test -n "$(AGAINST)" || (echo "usage: make breaking AGAINST=.git#tag=v0.1.0"; exit 2)
	docker run --rm --user "$$(id -u):$$(id -g)" -e XDG_CACHE_HOME=/tmp \
		-v "$$(pwd):/workspace" -w /workspace $(BUF_IMAGE) breaking \
			--against "$(AGAINST)"
