diff --git a/pkg/kapp/version/version.go b/pkg/kapp/version/version.go index 3ca685ad0..db5df8491 100644 --- a/pkg/kapp/version/version.go +++ b/pkg/kapp/version/version.go @@ -3,4 +3,37 @@ package version -var Version = "develop" +import "runtime/debug" + +var ( + // Version can be set via: + // -ldflags="-X 'github.com/vmware-tanzu/carvel-kapp/pkg/kapp/version.Version=$TAG'" + defaultVersion = "develop" + Version = "" + moduleName = "github.com/vmware-tanzu/carvel-kapp" +) + +func init() { + Version = version() +} + +func version() string { + if Version != "" { + // Version was set via ldflags, just return it. + return Version + } + + info, ok := debug.ReadBuildInfo() + if !ok { + return defaultVersion + } + + // Anything else. + for _, dep := range info.Deps { + if dep.Path == moduleName { + return dep.Version + } + } + + return defaultVersion +}