mirror of https://github.com/jetkvm/kvm.git
57 lines
1.1 KiB
Go
57 lines
1.1 KiB
Go
package kvm
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"html/template"
|
|
"runtime"
|
|
|
|
"github.com/prometheus/common/version"
|
|
)
|
|
|
|
var versionInfoTmpl = `
|
|
JetKVM Application, version {{.version}} (branch: {{.branch}}, revision: {{.revision}})
|
|
build date: {{.buildDate}}
|
|
go version: {{.goVersion}}
|
|
platform: {{.platform}}
|
|
|
|
{{if .nativeVersion}}
|
|
JetKVM Native, version {{.nativeVersion}}
|
|
{{end}}
|
|
`
|
|
|
|
func GetVersionData(isJson bool) ([]byte, error) {
|
|
version.Version = GetBuiltAppVersion()
|
|
|
|
m := map[string]string{
|
|
"version": version.Version,
|
|
"revision": version.GetRevision(),
|
|
"branch": version.Branch,
|
|
"buildDate": version.BuildDate,
|
|
"goVersion": version.GoVersion,
|
|
"platform": runtime.GOOS + "/" + runtime.GOARCH,
|
|
}
|
|
|
|
nativeVersion, err := GetNativeVersion()
|
|
if err == nil {
|
|
m["nativeVersion"] = nativeVersion
|
|
}
|
|
|
|
if isJson {
|
|
jsonData, err := json.Marshal(m)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return jsonData, nil
|
|
}
|
|
|
|
t := template.Must(template.New("version").Parse(versionInfoTmpl))
|
|
|
|
var buf bytes.Buffer
|
|
if err := t.ExecuteTemplate(&buf, "version", m); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return buf.Bytes(), nil
|
|
}
|