gopass/pkg/debug/version.go
Dominik Schulz 16c071a780
Enable golangci-lint on push and pr (#2158)
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2022-03-24 21:58:53 +01:00

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{}
}