mirror of
https://github.com/beego/bee.git
synced 2024-11-24 23:30:55 +00:00
update bee get beego & go version
This commit is contained in:
parent
a6f9c78aaa
commit
94c9dee22c
64
version.go
64
version.go
@ -1,11 +1,13 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"log"
|
||||
"os/exec"
|
||||
|
||||
"github.com/astaxie/beego"
|
||||
"io"
|
||||
"os"
|
||||
path "path/filepath"
|
||||
"regexp"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
var cmdVersion = &Command{
|
||||
@ -26,10 +28,52 @@ func init() {
|
||||
|
||||
func versionCmd(cmd *Command, args []string) {
|
||||
fmt.Println("bee :" + version)
|
||||
fmt.Println("beego :" + beego.VERSION)
|
||||
goversion, err := exec.Command("go", "version").Output()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Println("Go :" + string(goversion))
|
||||
fmt.Println("beego :" + getbeegoVersion())
|
||||
fmt.Println("Go :" + runtime.Version())
|
||||
}
|
||||
|
||||
func getbeegoVersion() string {
|
||||
gopath := os.Getenv("GOPATH")
|
||||
re, err := regexp.Compile(`const VERSION = "([0-9.]+)"`)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
if gopath == "" {
|
||||
err = fmt.Errorf("you should set GOPATH in the env")
|
||||
return ""
|
||||
}
|
||||
wgopath := path.SplitList(gopath)
|
||||
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
|
||||
}
|
||||
ColorLog("[ERRO] get beego.go has error\n")
|
||||
}
|
||||
fd, err := os.Open(filename)
|
||||
if err != nil {
|
||||
ColorLog("[ERRO] open beego.go has error\n")
|
||||
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 "you don't install beego,install first: github.com/astaxie/beego"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user