github.com/crowdsecurity/crowdsec@v1.6.1/mk/goversion.mk (about)

     1  
     2  BUILD_GOVERSION = $(subst go,,$(shell $(GO) env GOVERSION))
     3  
     4  go_major_minor = $(subst ., ,$(BUILD_GOVERSION))
     5  GO_MAJOR_VERSION = $(word 1, $(go_major_minor))
     6  GO_MINOR_VERSION = $(word 2, $(go_major_minor))
     7  
     8  GO_VERSION_VALIDATION_ERR_MSG = Golang version ($(BUILD_GOVERSION)) is not supported, please use at least $(BUILD_REQUIRE_GO_MAJOR).$(BUILD_REQUIRE_GO_MINOR)
     9  
    10  
    11  .PHONY: goversion
    12  goversion: $(if $(findstring devel,$(shell $(GO) env GOVERSION)),goversion_devel,goversion_check)
    13  
    14  
    15  .PHONY: goversion_devel
    16  goversion_devel:
    17  	$(warning WARNING: You are using a development version of Golang ($(BUILD_GOVERSION)) which is not supported. For production environments, use a stable version (at least $(BUILD_REQUIRE_GO_MAJOR).$(BUILD_REQUIRE_GO_MINOR)))
    18  	$(info )
    19  
    20  
    21  .PHONY: goversion_check
    22  goversion_check:
    23  ifneq ($(OS), Windows_NT)
    24  	@if [ $(GO_MAJOR_VERSION) -gt $(BUILD_REQUIRE_GO_MAJOR) ]; then \
    25  		exit 0; \
    26  	elif [ $(GO_MAJOR_VERSION) -lt $(BUILD_REQUIRE_GO_MAJOR) ]; then \
    27  		echo '$(GO_VERSION_VALIDATION_ERR_MSG)';\
    28  		exit 1; \
    29  	elif [ $(GO_MINOR_VERSION) -lt $(BUILD_REQUIRE_GO_MINOR) ] ; then \
    30  		echo '$(GO_VERSION_VALIDATION_ERR_MSG)';\
    31  		exit 1; \
    32  	fi
    33  else
    34  	# This needs Set-ExecutionPolicy -Scope CurrentUser Unrestricted
    35  	@$(CURDIR)/mk/check_go_version.ps1 $(BUILD_REQUIRE_GO_MAJOR) $(BUILD_REQUIRE_GO_MINOR)
    36  endif