36 lines
518 B
Go
36 lines
518 B
Go
package updater
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"golang.org/x/mod/semver"
|
|
)
|
|
|
|
func trimV(v string) string {
|
|
return strings.TrimPrefix(strings.TrimSpace(v), "v")
|
|
}
|
|
|
|
func canonical(v string) string {
|
|
v = strings.TrimSpace(v)
|
|
if v == "" {
|
|
return ""
|
|
}
|
|
if !strings.HasPrefix(v, "v") {
|
|
v = "v" + v
|
|
}
|
|
if !semver.IsValid(v) {
|
|
return ""
|
|
}
|
|
|
|
return v
|
|
}
|
|
|
|
func IsNewer(current, latest string) bool {
|
|
c, l := canonical(current), canonical(latest)
|
|
if c == "" || l == "" {
|
|
return false
|
|
}
|
|
|
|
return semver.Compare(l, c) > 0
|
|
}
|