Files
sing-box-extended-mirror/experimental/libbox/semver.go
T

30 lines
654 B
Go
Raw Normal View History

2026-02-16 11:28:48 +08:00
package libbox
import (
"strings"
2026-07-16 10:14:56 +08:00
"github.com/sagernet/sing-box/common/badversion"
2026-02-16 11:28:48 +08:00
"golang.org/x/mod/semver"
)
func CompareSemver(left string, right string) bool {
normalizedLeft := normalizeSemver(left)
if !semver.IsValid(normalizedLeft) {
return false
}
normalizedRight := normalizeSemver(right)
if !semver.IsValid(normalizedRight) {
return false
}
2026-07-16 10:14:56 +08:00
return badversion.Parse(normalizedLeft).GreaterThan(badversion.Parse(normalizedRight))
2026-02-16 11:28:48 +08:00
}
func normalizeSemver(version string) string {
trimmedVersion := strings.TrimSpace(version)
if strings.HasPrefix(trimmedVersion, "v") {
return trimmedVersion
}
return "v" + trimmedVersion
}