Skip to content

Commit c24268c

Browse files
authored
fallback to buildinfo when airversion and goversion is empty (air-verse#474)
* use build info as version, now can show version when using go install * fix failed test case
1 parent d771611 commit c24268c

File tree

3 files changed

+34
-3
lines changed

3 files changed

+34
-3
lines changed

main.go

+28-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"log"
77
"os"
88
"os/signal"
9+
"runtime"
10+
"runtime/debug"
911
"syscall"
1012

1113
"github.com/cosmtrek/air/runner"
@@ -43,13 +45,38 @@ func parseFlag(args []string) {
4345
flag.CommandLine.Parse(args)
4446
}
4547

48+
type versionInfo struct {
49+
airVersion string
50+
goVersion string
51+
}
52+
53+
func GetVersionInfo() versionInfo {
54+
if len(airVersion) != 0 && len(goVersion) != 0 {
55+
return versionInfo{
56+
airVersion: airVersion,
57+
goVersion: goVersion,
58+
}
59+
}
60+
if info, ok := debug.ReadBuildInfo(); ok {
61+
return versionInfo{
62+
airVersion: info.Main.Version,
63+
goVersion: runtime.Version(),
64+
}
65+
}
66+
return versionInfo{
67+
airVersion: "(unknown)",
68+
goVersion: runtime.Version(),
69+
}
70+
}
71+
4672
func main() {
73+
versionInfo := GetVersionInfo()
4774
fmt.Printf(`
4875
__ _ ___
4976
/ /\ | | | |_)
5077
/_/--\ |_| |_| \_ %s, built with Go %s
5178
52-
`, airVersion, goVersion)
79+
`, versionInfo.airVersion, versionInfo.goVersion)
5380

5481
if showVersion {
5582
return

runner/config.go

+2
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,8 @@ func defaultConfig() Config {
214214
Log: "build-errors.log",
215215
IncludeExt: []string{"go", "tpl", "tmpl", "html"},
216216
IncludeDir: []string{},
217+
PreCmd: []string{},
218+
PostCmd: []string{},
217219
ExcludeFile: []string{},
218220
IncludeFile: []string{},
219221
ExcludeDir: []string{"assets", "tmp", "vendor", "testdata"},

version.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
package main
22

3-
var airVersion string
4-
var goVersion string
3+
var (
4+
airVersion string
5+
goVersion string
6+
)

0 commit comments

Comments
 (0)