SHELL := /bin/zsh
# PLATFORM := $(shell go env GOOS)
PLATFORM=linux
# ARCH := $(shell go env GOARCH)
ARCH := amd64
TARGET := websocket-proxy
VERSION := 0.0.1
ifeq (run,$(firstword $(MAKECMDGOALS)))
  # use the rest as arguments for "run"
  RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
  # Allow the remaining goals to be passed through as bootstrap servers.
  %:
	@:
endif

.PHONY: all build docker run vendor update-deps

all: build docker

build:
	@echo ".:: building binary for $(PLATFORM) ::."
	@rm -f $(TARGET)
	@GOOS=$(PLATFORM) GOARCH=$(ARCH) go build -o $(TARGET) .

docker:
	@echo ".:: building docker image ::."
	@docker build -t kafka-websocket-go:$(VERSION) .

run:
	@echo ".:: starting server ::."
	@echo " bootstrap servers : $(RUN_ARGS)"
	@go run serv.go -addr :9000 --bootstrap-servers $(RUN_ARGS)

vendor:
	@echo ".:: synchronizing vendored Go modules ::."
	@go mod vendor

update-deps:
	@echo ".:: updating Go dependencies ::."
	@go get -u ./...
	@go mod tidy
	@go mod vendor
