# API Module Makefile
# This Makefile provides targets for the swagger generation and validation
# which are specific to the API module.

DOCKER ?= docker
BUILDX ?= $(DOCKER) buildx

API_DIR := $(CURDIR)
PROJECT_PATH := /go/src/github.com/moby/moby

DOCKER_MOUNT := -v "$(API_DIR):$(PROJECT_PATH)/api"

DOCKER_IMAGE := docker-api-dev

DOCKER_WORKDIR := -w $(PROJECT_PATH)/api

DOCKER_FLAGS := $(DOCKER) run --rm $(DOCKER_MOUNT) $(DOCKER_WORKDIR)
DOCKER_RUN := $(DOCKER_FLAGS) "$(DOCKER_IMAGE)"

DOCKER_CONTAINER_NAME := $(if $(CONTAINER_NAME),--name $(CONTAINER_NAME),)

DOCKER_BUILD_ARGS += --build-arg=GO_VERSION
DOCKER_BUILD_ARGS += --build-arg=SWAGGER_VERSION

BUILD_CMD := $(BUILDX) build

SWAGGER_DOCS_PORT ?= 9000

.DEFAULT_GOAL := help

.PHONY: build
build:
	$(BUILD_CMD) $(DOCKER_BUILD_ARGS) \
		--target dev \
		--load \
		-t "$(DOCKER_IMAGE)" \
		-f Dockerfile \
		.

.PHONY: swagger-gen
swagger-gen: build ## generate swagger API types
	$(DOCKER_RUN) ./scripts/generate-swagger-api.sh

.PHONY: swagger-docs
swagger-docs: ## preview the API documentation
	@echo "API docs preview will be running at http://localhost:$(SWAGGER_DOCS_PORT)"
	@docker run --rm \
		-v ./:/usr/share/nginx/html/swagger/ \
		-e 'REDOC_OPTIONS=hide-hostname="true" lazy-rendering' \
		-e SPEC_URL="swagger/swagger.yaml" \
		-p $(SWAGGER_DOCS_PORT):80 \
		redocly/redoc:v2.5.1

.PHONY: validate-swagger
validate-swagger: build ## validate the swagger.yaml file
	$(DOCKER_RUN) ./scripts/validate-swagger.sh

.PHONY: validate-swagger-gen
validate-swagger-gen: build ## validate generated types are up-to-date
	$(DOCKER_RUN) ./scripts/validate-swagger-gen.sh

.PHONY: help
help: ## display this help message
	@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z0-9_-]+:.*?## / {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
