|
|
@@ -3,6 +3,8 @@ package main
|
|
3
|
3
|
import (
|
|
4
|
4
|
"math/rand"
|
|
5
|
5
|
"os"
|
|
|
6
|
+ "runtime/debug"
|
|
|
7
|
+ "strings"
|
|
6
|
8
|
"time"
|
|
7
|
9
|
|
|
8
|
10
|
kingpin "gopkg.in/alecthomas/kingpin.v2"
|
|
|
@@ -12,8 +14,6 @@ import (
|
|
12
|
14
|
"github.com/9seconds/mtg/utils"
|
|
13
|
15
|
)
|
|
14
|
16
|
|
|
15
|
|
-var version = "dev" // this has to be set by build ld flags
|
|
16
|
|
-
|
|
17
|
17
|
var (
|
|
18
|
18
|
app = kingpin.New("MTG", "Simple MTPROTO proxy.")
|
|
19
|
19
|
|
|
|
@@ -114,7 +114,7 @@ var (
|
|
114
|
114
|
|
|
115
|
115
|
func main() {
|
|
116
|
116
|
rand.Seed(time.Now().UTC().UnixNano())
|
|
117
|
|
- app.Version(version)
|
|
|
117
|
+ app.Version(getVersion())
|
|
118
|
118
|
app.HelpFlag.Short('h')
|
|
119
|
119
|
|
|
120
|
120
|
if err := utils.SetLimits(); err != nil {
|
|
|
@@ -153,3 +153,26 @@ func main() {
|
|
153
|
153
|
}
|
|
154
|
154
|
}
|
|
155
|
155
|
}
|
|
|
156
|
+
|
|
|
157
|
+func getVersion() string {
|
|
|
158
|
+ if info, ok := debug.ReadBuildInfo(); ok {
|
|
|
159
|
+ builder := strings.Builder{}
|
|
|
160
|
+ version := info.Main.Version
|
|
|
161
|
+
|
|
|
162
|
+ if version == "(devel)" {
|
|
|
163
|
+ version = "dev"
|
|
|
164
|
+ }
|
|
|
165
|
+
|
|
|
166
|
+ builder.WriteString(version)
|
|
|
167
|
+
|
|
|
168
|
+ if info.Main.Sum != "" {
|
|
|
169
|
+ builder.WriteString(" (checksum: ")
|
|
|
170
|
+ builder.WriteString(info.Main.Sum)
|
|
|
171
|
+ builder.WriteRune(')')
|
|
|
172
|
+ }
|
|
|
173
|
+
|
|
|
174
|
+ return builder.String()
|
|
|
175
|
+ }
|
|
|
176
|
+
|
|
|
177
|
+ return "dev"
|
|
|
178
|
+}
|