fix Beego#4972: bee version failed

This commit is contained in:
Deng Ming 2022-06-10 18:54:40 +08:00
parent 97df75a28c
commit afe1678459
3 changed files with 19 additions and 76 deletions

View File

@ -15,15 +15,15 @@ import (
// RuntimeInfo holds information about the current runtime.
type RuntimeInfo struct {
GoVersion string
GOOS string
GOARCH string
NumCPU int
GOPATH string
GOROOT string
Compiler string
BeeVersion string
Published string
GoVersion string
GOOS string
GOARCH string
NumCPU int
GOPATH string
GOROOT string
Compiler string
BeeVersion string
Published string
}
// InitBanner loads the banner and prints it to output
@ -52,7 +52,7 @@ func show(out io.Writer, content string) {
}
err = t.Execute(out, RuntimeInfo{
GetGoVersion(),
runtime.Version(),
runtime.GOOS,
runtime.GOARCH,
runtime.NumCPU(),

View File

@ -1,23 +1,18 @@
package version
import (
"bufio"
"bytes"
"encoding/json"
"flag"
"fmt"
"gopkg.in/yaml.v2"
"io"
"os"
path "path/filepath"
"regexp"
"runtime"
"github.com/beego/bee/v2/cmd/commands"
"github.com/beego/bee/v2/config"
beeLogger "github.com/beego/bee/v2/logger"
"github.com/beego/bee/v2/logger/colors"
"github.com/beego/bee/v2/utils"
)
const verboseVersionBanner string = `%s%s______
@ -27,7 +22,6 @@ const verboseVersionBanner string = `%s%s______
| |_/ /| __/| __/
\____/ \___| \___| v{{ .BeeVersion }}%s
%s%s
Beego : {{ .BeegoVersion }}
GoVersion : {{ .GoVersion }}
GOOS : {{ .GOOS }}
GOARCH : {{ .GOARCH }}
@ -72,15 +66,14 @@ func versionCmd(cmd *commands.Command, args []string) int {
if outputFormat != "" {
runtimeInfo := RuntimeInfo{
GetGoVersion(),
runtime.GOOS,
runtime.GOARCH,
runtime.NumCPU(),
os.Getenv("GOPATH"),
runtime.GOROOT(),
runtime.Compiler,
version,
GetBeegoVersion(),
GoVersion: runtime.Version(),
GOOS: runtime.GOOS,
GOARCH: runtime.GOARCH,
NumCPU: runtime.NumCPU(),
GOPATH: os.Getenv("GOPATH"),
GOROOT: runtime.GOROOT(),
Compiler: runtime.Compiler,
BeeVersion: version,
}
switch outputFormat {
case "json":
@ -115,53 +108,3 @@ func ShowShortVersionBanner() {
output := colors.NewColorWriter(os.Stdout)
InitBanner(output, bytes.NewBufferString(colors.MagentaBold(shortVersionBanner)))
}
func GetBeegoVersion() string {
re, err := regexp.Compile(`VERSION = "([0-9.]+)"`)
if err != nil {
return ""
}
wgopath := utils.GetGOPATHs()
if len(wgopath) == 0 {
beeLogger.Log.Error("GOPATH environment is empty,may be you use `go module`")
return ""
}
for _, wg := range wgopath {
wg, _ = path.EvalSymlinks(path.Join(wg, "src", "github.com", "astaxie", "beego"))
filename := path.Join(wg, "beego.go")
_, err := os.Stat(filename)
if err != nil {
if os.IsNotExist(err) {
continue
}
beeLogger.Log.Error("Error while getting stats of 'beego.go'")
}
fd, err := os.Open(filename)
if err != nil {
beeLogger.Log.Error("Error while reading 'beego.go'")
continue
}
reader := bufio.NewReader(fd)
for {
byteLine, _, er := reader.ReadLine()
if er != nil && er != io.EOF {
return ""
}
if er == io.EOF {
break
}
line := string(byteLine)
s := re.FindStringSubmatch(line)
if len(s) >= 2 {
return s[1]
}
}
}
return "Beego is not installed. Please do consider installing it first: https://github.com/beego/beego/v2. " +
"If you are using go mod, and you don't install the beego under $GOPATH/src/github.com/astaxie, just ignore this."
}
func GetGoVersion() string {
return runtime.Version()
}

View File

@ -27,7 +27,7 @@ import (
const confVer = 0
const (
Version = "2.0.2"
Version = "2.0.3"
GitRemotePath = "github.com/beego/bee/v2"
)