More reasonable version management

This commit is contained in:
9seconds
2019-11-19 18:13:35 +03:00
parent 4c2c468289
commit 307910fe4a
2 changed files with 23 additions and 19 deletions
+4 -1
View File
@@ -6,7 +6,10 @@ CC_BINARIES := $(shell bash -c "echo -n $(APP_NAME)-{linux,freebsd,openbsd}-{38
GOLANGCI_LINT_VERSION := v1.21.0
COMMON_BUILD_FLAGS := -ldflags="-s -w"
VERSION_GO := $(shell go version)
VERSION_DATE := $(shell date -Ru)
VERSION_TAG := $(shell git describe --tags --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
+19 -18
View File
@@ -14,6 +14,8 @@ import (
"github.com/9seconds/mtg/utils"
)
var version = "dev" // has to be set by ldflags
var (
app = kingpin.New("mtg", "Simple MTPROTO proxy.")
@@ -155,24 +157,23 @@ func main() {
}
func getVersion() string {
if info, ok := debug.ReadBuildInfo(); ok {
builder := strings.Builder{}
version := info.Main.Version
if version == "(devel)" {
version = "dev"
}
builder.WriteString(version)
if info.Main.Sum != "" {
builder.WriteString(" (checksum: ")
builder.WriteString(info.Main.Sum)
builder.WriteRune(')')
}
return builder.String()
if version != "dev" {
return version
}
return "dev"
info, ok := debug.ReadBuildInfo()
if !ok {
return version
}
builder := strings.Builder{}
builder.WriteString(info.Main.Version)
if info.Main.Sum != "" {
builder.WriteString(" (checksum: ")
builder.WriteString(info.Main.Sum)
builder.WriteRune(')')
}
return builder.String()
}