From ea97bf51c834aac5635ffc218de7ea3a694dc5db Mon Sep 17 00:00:00 2001 From: 9seconds Date: Fri, 2 Nov 2018 18:54:28 +0300 Subject: [PATCH] Remove autogeneration of version.go --- Makefile | 21 ++++++++++----------- main.go | 4 ++-- scripts/generate_version.sh | 12 ------------ 3 files changed, 12 insertions(+), 25 deletions(-) delete mode 100755 scripts/generate_version.sh diff --git a/Makefile b/Makefile index d0216b3..8e0c57a 100644 --- a/Makefile +++ b/Makefile @@ -3,26 +3,28 @@ IMAGE_NAME := mtg APP_NAME := $(IMAGE_NAME) CC_BINARIES := $(shell bash -c "echo -n $(APP_NAME)-{linux,freebsd,openbsd}-{386,amd64} $(APP_NAME)-linux-{arm,arm64}") -APP_DEPS := version.go GOLANGCI_LINT_VERSION := v1.10.2 -COMMON_BUILD_FLAGS := -ldflags="-s -w" +VERSION_GO := $(shell go version) +VERSION_DATE := $(shell date -Ru) +VERSION_TAG := $(shell git describe --long --always) +COMMON_BUILD_FLAGS := -ldflags="-s -w -X 'main.version=$(VERSION_TAG) ($(VERSION_GO)) [$(VERSION_DATE)]'" MOD_ON := env GO111MODULE=on MOD_OFF := env GO111MODULE=auto # ----------------------------------------------------------------------------- -$(APP_NAME): $(APP_DEPS) +$(APP_NAME): @$(MOD_ON) go build $(COMMON_BUILD_FLAGS) -o "$(APP_NAME)" -static-$(APP_NAME): $(APP_DEPS) +static-$(APP_NAME): @$(MOD_ON) env CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo $(COMMON_BUILD_FLAGS) -o "$(APP_NAME)" $(APP_NAME)-%: GOOS=$(shell echo -n "$@" | sed 's?$(APP_NAME)-??' | cut -f1 -d-) $(APP_NAME)-%: GOARCH=$(shell echo -n "$@" | sed 's?$(APP_NAME)-??' | cut -f2 -d-) -$(APP_NAME)-%: $(APP_DEPS) ccbuilds +$(APP_NAME)-%: ccbuilds @$(MOD_ON) env "GOOS=$(GOOS)" "GOARCH=$(GOARCH)" \ go build \ $(COMMON_BUILD_FLAGS) \ @@ -31,9 +33,6 @@ $(APP_NAME)-%: $(APP_DEPS) ccbuilds ccbuilds: @rm -rf ./ccbuilds && mkdir -p ./ccbuilds -version.go: - @$(MOD_ON) go generate main.go - vendor: go.mod go.sum @$(MOD_ON) go mod vendor @@ -53,15 +52,15 @@ crosscompile-dir: @rm -rf "$(CC_DIR)" && mkdir -p "$(CC_DIR)" .PHONY: test -test: vendor $(APP_DEPS) +test: vendor @$(MOD_ON) go test -v ./... .PHONY: lint -lint: vendor $(APP_DEPS) +lint: vendor @$(MOD_OFF) golangci-lint run .PHONY: critic -critic: vendor $(APP_DEPS) +critic: vendor @$(MOD_OFF) gocritic check-project "$(ROOT_DIR)" .PHONY: clean diff --git a/main.go b/main.go index 37d5ff5..7f1c76f 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,5 @@ package main -//go:generate scripts/generate_version.sh - import ( "encoding/json" "fmt" @@ -22,6 +20,8 @@ import ( "github.com/9seconds/mtg/stats" ) +var version = "dev" // this has to be set by build ld flags + var ( app = kingpin.New("mtg", "Simple MTPROTO proxy.") diff --git a/scripts/generate_version.sh b/scripts/generate_version.sh deleted file mode 100755 index 8a964ec..0000000 --- a/scripts/generate_version.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -set -eu - -PROJECT_DIR="$(git rev-parse --show-toplevel)" -OUTPUT_FILE="${PROJECT_DIR}/version.go" - -cat > "$OUTPUT_FILE" <