.PHONY: help tidy fmt vet test build run export clean

GO ?= go
CMD_DIR := ./cmd/controltower
BIN_DIR := ./bin
BINARY := controltower

help:
	@printf "%s\n" \
		"Targets:" \
		"  make tidy        - go mod tidy" \
		"  make fmt         - gofmt all go files" \
		"  make vet         - go vet ./..." \
		"  make test        - go test ./..." \
		"  make build       - build binary to ./bin/controltower" \
		"  make run         - run TUI (needs a real TTY)" \
		"  make export PATH=/tmp/issues.json - export snapshot and exit" \
		"  make clean       - remove ./bin"

tidy:
	$(GO) mod tidy

fmt:
	$(GO)fmt -w .

vet:
	$(GO) vet ./...

test:
	$(GO) test ./... -v

build:
	@mkdir -p "$(BIN_DIR)"
	$(GO) build -o "$(BIN_DIR)/$(BINARY)" "$(CMD_DIR)"

run:
	$(GO) run "$(CMD_DIR)"

export:
	@if [ -z "$(PATH)" ]; then echo "PATH is required (e.g. make export PATH=/tmp/issues.json)"; exit 2; fi
	$(GO) run "$(CMD_DIR)" --export "$(PATH)"

clean:
	rm -rf "$(BIN_DIR)"
