Use buildinfo to get a version

This commit is contained in:
9seconds
2019-11-19 11:36:14 +03:00
parent 843fc4b70f
commit b2e7e1a225
2 changed files with 27 additions and 7 deletions
+26 -3
View File
@@ -3,6 +3,8 @@ package main
import (
"math/rand"
"os"
"runtime/debug"
"strings"
"time"
kingpin "gopkg.in/alecthomas/kingpin.v2"
@@ -12,8 +14,6 @@ import (
"github.com/9seconds/mtg/utils"
)
var version = "dev" // this has to be set by build ld flags
var (
app = kingpin.New("MTG", "Simple MTPROTO proxy.")
@@ -114,7 +114,7 @@ var (
func main() {
rand.Seed(time.Now().UTC().UnixNano())
app.Version(version)
app.Version(getVersion())
app.HelpFlag.Short('h')
if err := utils.SetLimits(); err != nil {
@@ -153,3 +153,26 @@ 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()
}
return "dev"
}