diff options
Diffstat (limited to 'funcs/semver.go')
| -rw-r--r-- | funcs/semver.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/funcs/semver.go b/funcs/semver.go new file mode 100644 index 00000000..0212c998 --- /dev/null +++ b/funcs/semver.go @@ -0,0 +1,40 @@ +package funcs + +import ( + "context" + + "github.com/Masterminds/semver/v3" +) + +// CreateSemverFuncs - +func CreateSemverFuncs(ctx context.Context) map[string]interface{} { + ns := &SemverFuncs{ctx} + return map[string]interface{}{ + "semver": func() interface{} { return ns }, + } +} + +// SemverFuncs - +type SemverFuncs struct { + ctx context.Context +} + +// Semver - +func (SemverFuncs) Semver(version string) (*semver.Version, error) { + return semver.NewVersion(version) +} + +// CheckConstraint - +func (SemverFuncs) CheckConstraint(constraint, in string) (bool, error) { + c, err := semver.NewConstraint(constraint) + if err != nil { + return false, err + } + + v, err := semver.NewVersion(in) + if err != nil { + return false, err + } + + return c.Check(v), nil +} |
