# Makefile for royalroadupdates — builds entirely inside Docker.

PWD := $(shell pwd)
DOCKER_RUN := docker run --rm -v $(PWD):/src -w /src golang:1.22

.PHONY: build check clean

build:
	$(DOCKER_RUN) sh -c '\
		set -e; \
		if [ -f .env ]; then . ./.env; fi; \
		if [ -z "$$PB_URL" ] || [ -z "$$PB_USER" ] || [ -z "$$PB_PASSWORD" ] || [ -z "$$PB_CATEGORY" ]; then \
			echo "error: .env is missing or one of PB_URL / PB_USER / PB_PASSWORD / PB_CATEGORY is not set"; \
			exit 1; \
		fi; \
		go build \
			-ldflags "-X main.PBURL=$${PB_URL} -X main.PBUser=$${PB_USER} -X main.PBPassword=$${PB_PASSWORD} -X main.PBCategory=$${PB_CATEGORY}" \
			-o royalroadupdates \
			./cmd/royalroadupdates'

check:
	$(DOCKER_RUN) sh -c '\
		set -e; \
		if [ -f .env ]; then . ./.env; fi; \
		export PB_URL PB_USER PB_PASSWORD PB_CATEGORY; \
		d=$$(gofmt -l .); \
		if [ -n "$$d" ]; then echo "format errors:"; echo "$$d"; exit 1; fi; \
		go vet ./...; \
		go test ./...'

clean:
	rm -f royalroadupdates
