@@ -15,6 +15,13 @@ import (
15
15
"github.com/mitchellh/go-homedir"
16
16
)
17
17
18
+ var (
19
+ version = "dev"
20
+ commit = "none"
21
+ date = "unknown"
22
+ builtBy = "unknown"
23
+ )
24
+
18
25
func fail (err string ) {
19
26
fmt .Fprintln (os .Stderr , err )
20
27
os .Exit (1 )
@@ -132,6 +139,7 @@ var configPath string
132
139
var excludePaths arrayFlags
133
140
var formatterName string
134
141
var help bool
142
+ var versionFlag bool
135
143
136
144
var originalUsage = flag .Usage
137
145
@@ -177,17 +185,32 @@ func init() {
177
185
fmt .Println (getBanner ())
178
186
originalUsage ()
179
187
}
188
+
180
189
// command line help strings
181
190
const (
182
191
configUsage = "path to the configuration TOML file, defaults to $HOME/revive.toml, if present (i.e. -config myconf.toml)"
183
192
excludeUsage = "list of globs which specify files to be excluded (i.e. -exclude foo/...)"
184
193
formatterUsage = "formatter to be used for the output (i.e. -formatter stylish)"
194
+ versionUsage = "get revive version"
185
195
)
186
196
187
197
defaultConfigPath := buildDefaultConfigPath ()
188
198
189
199
flag .StringVar (& configPath , "config" , defaultConfigPath , configUsage )
190
200
flag .Var (& excludePaths , "exclude" , excludeUsage )
191
201
flag .StringVar (& formatterName , "formatter" , "" , formatterUsage )
202
+ flag .BoolVar (& versionFlag , "version" , false , versionUsage )
192
203
flag .Parse ()
204
+
205
+ // Output build info (version, commit, date and builtBy)
206
+ if versionFlag {
207
+ fmt .Printf (
208
+ "Current revive version %v commit %v, built @%v by %v.\n " ,
209
+ version ,
210
+ commit ,
211
+ date ,
212
+ builtBy ,
213
+ )
214
+ os .Exit (0 )
215
+ }
193
216
}
0 commit comments