gopass/pkg/debug/version.go
Dominik Schulz 5f8afb6415
Improve compatibility with passage (#2060)
* Improve compatibility with github.com/FiloSottile/passage

Part of #2060

RELEASE_NOTES=[ENHANCEMENT] Passage compat improvements

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Add migration tooling to automate upgrades with existing age backends

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-12-21 11:04:35 +01:00

31 lines
592 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
}
return semver.Version{}
}