cloudfoundry/korifi

View on GitHub
version/version.go

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
package version
 
import (
"github.com/Masterminds/semver/v3"
"sigs.k8s.io/controller-runtime/pkg/client"
)
 
const KorifiCreationVersionKey = "korifi.cloudfoundry.org/creation-version"
 
// version is overwritten at compile time by passing
// -ldflags -X code.cloudfoundry.org/korifi/version.Version=<version>
var Version = "v9999.99.99-local.dev"
 
type Checker struct {
version *semver.Version
}
 
func NewChecker(ver string) Checker {
return Checker{version: semver.MustParse(ver)}
}
 
func (c Checker) ObjectIsNewer(obj client.Object) (bool, error) {
korifiVersion := obj.GetAnnotations()[KorifiCreationVersionKey]
semVersion, err := semver.NewVersion(korifiVersion)
if err != nil {
return false, err
}
 
return semVersion.GreaterThan(c.version), nil
}