delve/pkg/version/buildinfo.go
2023-10-03 08:50:11 -07:00

33 lines
642 B
Go

//go:build go1.12
package version
import (
"bytes"
"runtime/debug"
"text/template"
)
func init() {
buildInfo = moduleBuildInfo
}
var buildInfoTmpl = ` mod {{.Main.Path}} {{.Main.Version}} {{.Main.Sum}}
{{range .Deps}} dep {{.Path}} {{.Version}} {{.Sum}}{{if .Replace}}
=> {{.Replace.Path}} {{.Replace.Version}} {{.Replace.Sum}}{{end}}
{{end}}`
func moduleBuildInfo() string {
info, ok := debug.ReadBuildInfo()
if !ok {
return "not built in module mode"
}
buf := new(bytes.Buffer)
err := template.Must(template.New("buildinfo").Parse(buildInfoTmpl)).Execute(buf, info)
if err != nil {
panic(err)
}
return buf.String()
}