GO     := CGO_ENABLED=0 go
export GOFLAGS := -mod=mod

.PHONY: list
list:
	@$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | grep -v go.mod | xargs

all: revive golangci-lint swagger goqueryset

revive:
	go build -o bin/revive github.com/mgechev/revive

golangci-lint:
	go get -d github.com/golangci/golangci-lint/cmd/golangci-lint@v1.46.2; \
	go build -o bin/golangci-lint github.com/golangci/golangci-lint/cmd/golangci-lint

swagger-v0.29.0:
	go get -d github.com/go-swagger/go-swagger@v0.29.0
	go build -o "bin/swagger-v0.29.0" github.com/go-swagger/go-swagger/cmd/swagger

swagger: swagger-v0.29.0
	ln -sf "swagger-v0.29.0" "bin/swagger"

goqueryset:
	go install "github.com/tidbcloud/go-queryset@gorm1.20.11"; \
	go build -o "bin/goqueryset" "github.com/jirfag/go-queryset/cmd/goqueryset";
