mirror of
https://github.com/gopasspw/gopass.git
synced 2025-12-08 19:24:54 +00:00
38 lines
629 B
Go
38 lines
629 B
Go
package debug
|
|
|
|
import (
|
|
rdebug "runtime/debug"
|
|
"strings"
|
|
|
|
"github.com/blang/semver/v4"
|
|
)
|
|
|
|
// ModuleVersion the version of the named import.
|
|
func ModuleVersion(m string) semver.Version {
|
|
bi, ok := rdebug.ReadBuildInfo()
|
|
if !ok || bi == nil {
|
|
Log("Failed to read build info")
|
|
|
|
return semver.Version{}
|
|
}
|
|
|
|
for _, dep := range bi.Deps {
|
|
if dep.Path != m {
|
|
continue
|
|
}
|
|
|
|
sv, err := semver.Parse(strings.TrimPrefix(dep.Version, "v"))
|
|
if err != nil {
|
|
Log("Failed to parse version %s: %s", dep.Version, err)
|
|
|
|
return semver.Version{}
|
|
}
|
|
|
|
return sv
|
|
}
|
|
|
|
Log("no module %s found", m)
|
|
|
|
return semver.Version{}
|
|
}
|