mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-19 23:26:19 +08:00
ensure netclient version is compatible
This commit is contained in:
31
logic/version.go
Normal file
31
logic/version.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"unicode"
|
||||
|
||||
"github.com/hashicorp/go-version"
|
||||
)
|
||||
|
||||
const MinVersion = "v0.17.0"
|
||||
|
||||
// IsVersionCompatible checks that the version passed is compabtible (>=) with MinVersion
|
||||
func IsVersionComptatible(ver string) bool {
|
||||
// during dev, assume developers know what they are doing
|
||||
if ver == "dev" {
|
||||
return true
|
||||
}
|
||||
trimmed := strings.TrimFunc(ver, func(r rune) bool {
|
||||
return !unicode.IsNumber(r)
|
||||
})
|
||||
v, err := version.NewVersion(trimmed)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
constraint, err := version.NewConstraint(">= " + MinVersion)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return constraint.Check(v)
|
||||
|
||||
}
|
Reference in New Issue
Block a user