APP := filedb
CMD := ./cmd/filedb
BUILD_DIR := bin
BIN := $(BUILD_DIR)/$(APP)

.PHONY: help build run install fmt tidy test clean

help:
	@echo "Targets:"
	@echo "  make build             Build binary to $(BIN)"
	@echo "  make run ARGS='...'    Run CLI with optional ARGS"
	@echo "  make install           Install CLI to GOPATH/bin"
	@echo "  make fmt               Format Go code"
	@echo "  make tidy              Tidy go modules"
	@echo "  make test              Run tests"
	@echo "  make clean             Remove build artifacts"

build:
	@mkdir -p $(BUILD_DIR)
	go build -o $(BIN) $(CMD)

run:
	go run $(CMD) $(ARGS)

install:
	go install $(CMD)

fmt:
	gofmt -w $$(find . -type f -name '*.go' -not -path './vendor/*')

tidy:
	go mod tidy

test:
	go test ./...

clean:
	rm -rf $(BUILD_DIR)

