fallback to buildinfo when airversion and goversion is empty (#474)

* use build info as version, now can show version when using go install

* fix failed test case
This commit is contained in:
xiantang
2023-10-16 16:52:33 +08:00
committed by GitHub
parent d771611015
commit c24268c83b
3 changed files with 34 additions and 3 deletions
+28 -1
View File
@@ -6,6 +6,8 @@ import (
"log"
"os"
"os/signal"
"runtime"
"runtime/debug"
"syscall"
"github.com/cosmtrek/air/runner"
@@ -43,13 +45,38 @@ func parseFlag(args []string) {
flag.CommandLine.Parse(args)
}
type versionInfo struct {
airVersion string
goVersion string
}
func GetVersionInfo() versionInfo {
if len(airVersion) != 0 && len(goVersion) != 0 {
return versionInfo{
airVersion: airVersion,
goVersion: goVersion,
}
}
if info, ok := debug.ReadBuildInfo(); ok {
return versionInfo{
airVersion: info.Main.Version,
goVersion: runtime.Version(),
}
}
return versionInfo{
airVersion: "(unknown)",
goVersion: runtime.Version(),
}
}
func main() {
versionInfo := GetVersionInfo()
fmt.Printf(`
__ _ ___
/ /\ | | | |_)
/_/--\ |_| |_| \_ %s, built with Go %s
`, airVersion, goVersion)
`, versionInfo.airVersion, versionInfo.goVersion)
if showVersion {
return
+2
View File
@@ -214,6 +214,8 @@ func defaultConfig() Config {
Log: "build-errors.log",
IncludeExt: []string{"go", "tpl", "tmpl", "html"},
IncludeDir: []string{},
PreCmd: []string{},
PostCmd: []string{},
ExcludeFile: []string{},
IncludeFile: []string{},
ExcludeDir: []string{"assets", "tmp", "vendor", "testdata"},
+4 -2
View File
@@ -1,4 +1,6 @@
package main
var airVersion string
var goVersion string
var (
airVersion string
goVersion string
)