@@ -16,11 +16,18 @@ import (
16
16
"github.com/spf13/afero"
17
17
)
18
18
19
+ const (
20
+ defaultVersion = "dev"
21
+ defaultCommit = "none"
22
+ defaultDate = "unknown"
23
+ defaultBuilder = "unknown"
24
+ )
25
+
19
26
var (
20
- version = "dev"
21
- commit = "none"
22
- date = "unknown"
23
- builtBy = "unknown"
27
+ version = defaultVersion
28
+ commit = defaultCommit
29
+ date = defaultDate
30
+ builtBy = defaultBuilder
24
31
//AppFs is used to operations related with user config files
25
32
AppFs = afero .NewOsFs ()
26
33
)
@@ -35,6 +42,12 @@ func RunRevive(extraRules ...revivelib.ExtraRule) {
35
42
// move parsing flags outside of init() otherwise tests dont works properly
36
43
// more info: https://github.com/golang/go/issues/46869#issuecomment-865695953
37
44
initConfig ()
45
+
46
+ if versionFlag {
47
+ fmt .Print (getVersion (builtBy , date , commit , version ))
48
+ os .Exit (0 )
49
+ }
50
+
38
51
conf , err := config .GetConfig (configPath )
39
52
if err != nil {
40
53
fail (err .Error ())
@@ -160,35 +173,33 @@ func initConfig() {
160
173
flag .BoolVar (& setExitStatus , "set_exit_status" , false , exitStatusUsage )
161
174
flag .IntVar (& maxOpenFiles , "max_open_files" , 0 , maxOpenFilesUsage )
162
175
flag .Parse ()
176
+ }
163
177
164
- // Output build info (version, commit, date and builtBy)
165
- if versionFlag {
166
- var buildInfo string
167
- if date != "unknown" && builtBy != "unknown" {
168
- buildInfo = fmt .Sprintf ("Built\t \t %s by %s\n " , date , builtBy )
169
- }
178
+ // getVersion returns build info (version, commit, date and builtBy)
179
+ func getVersion ( builtBy , date , commit , version string ) string {
180
+ var buildInfo string
181
+ if date != defaultDate && builtBy != defaultBuilder {
182
+ buildInfo = fmt .Sprintf ("Built\t \t %s by %s\n " , date , builtBy )
183
+ }
170
184
171
- if commit != "none" {
172
- buildInfo = fmt .Sprintf ("Commit:\t \t %s\n %s" , commit , buildInfo )
173
- }
185
+ if commit != defaultCommit {
186
+ buildInfo = fmt .Sprintf ("Commit:\t \t %s\n %s" , commit , buildInfo )
187
+ }
174
188
175
- if version == "dev" {
176
- bi , ok := debug .ReadBuildInfo ()
177
- if ok {
178
- version = bi .Main .Version
179
- if strings .HasPrefix (version , "v" ) {
180
- version = bi .Main .Version [1 :]
181
- }
182
- if len (buildInfo ) == 0 {
183
- fmt .Printf ("version %s\n " , version )
184
- os .Exit (0 )
185
- }
189
+ if version == defaultVersion {
190
+ bi , ok := debug .ReadBuildInfo ()
191
+ if ok {
192
+ version = bi .Main .Version
193
+ if strings .HasPrefix (version , "v" ) {
194
+ version = strings .TrimLeft (bi .Main .Version , "v" )
195
+ }
196
+ if len (buildInfo ) == 0 {
197
+ return fmt .Sprintf ("version %s\n " , version )
186
198
}
187
199
}
188
-
189
- fmt .Printf ("Version:\t %s\n %s" , version , buildInfo )
190
- os .Exit (0 )
191
200
}
201
+
202
+ return fmt .Sprintf ("Version:\t %s\n %s" , version , buildInfo )
192
203
}
193
204
194
205
func fileExist (path string ) bool {
0 commit comments