# ABOUTME: Build automation and code generation for EdgeXR SDK
# ABOUTME: Provides targets for generating types, testing, and building the CLI

.PHONY: test build clean install-tools

# Install required tools
install-tools:
	go install github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen@latest

# Run tests
test:
	go test -v ./...

# Run tests with coverage
test-coverage:
	go test -v -coverprofile=coverage.out ./...
	go tool cover -html=coverage.out -o coverage.html

# Build the CLI
build:
	go build -o bin/edge-connect .

# Clean generated files and build artifacts
clean:
	rm -f sdk/client/types_generated.go
	rm -f bin/edge-connect
	rm -f coverage.out coverage.html

# Lint the code
lint:
	go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.6.2 run

# Run all checks (generate, test, lint)
check: test lint

# Default target
all: check build
