node build fixed
This commit is contained in:
78
seanime-2.9.10/internal/util/version.go
Normal file
78
seanime-2.9.10/internal/util/version.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/Masterminds/semver/v3"
|
||||
)
|
||||
|
||||
func IsValidVersion(version string) bool {
|
||||
parts := strings.Split(version, ".")
|
||||
if len(parts) != 3 {
|
||||
return false
|
||||
}
|
||||
|
||||
for _, part := range parts {
|
||||
if _, err := strconv.Atoi(part); err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// CompareVersion compares two versions and returns the difference between them.
|
||||
//
|
||||
// 3: Current version is newer by major version.
|
||||
// 2: Current version is newer by minor version.
|
||||
// 1: Current version is newer by patch version.
|
||||
// -3: Current version is older by major version.
|
||||
// -2: Current version is older by minor version.
|
||||
// -1: Current version is older by patch version.
|
||||
func CompareVersion(current string, b string) (comp int, shouldUpdate bool) {
|
||||
|
||||
currV, err := semver.NewVersion(current)
|
||||
if err != nil {
|
||||
return 0, false
|
||||
}
|
||||
otherV, err := semver.NewVersion(b)
|
||||
if err != nil {
|
||||
return 0, false
|
||||
}
|
||||
|
||||
comp = currV.Compare(otherV)
|
||||
if comp == 0 {
|
||||
return 0, false
|
||||
}
|
||||
|
||||
if currV.GreaterThan(otherV) {
|
||||
shouldUpdate = false
|
||||
|
||||
if currV.Major() > otherV.Major() {
|
||||
comp *= 3
|
||||
} else if currV.Minor() > otherV.Minor() {
|
||||
comp *= 2
|
||||
} else if currV.Patch() > otherV.Patch() {
|
||||
comp *= 1
|
||||
}
|
||||
} else if currV.LessThan(otherV) {
|
||||
shouldUpdate = true
|
||||
|
||||
if currV.Major() < otherV.Major() {
|
||||
comp *= 3
|
||||
} else if currV.Minor() < otherV.Minor() {
|
||||
comp *= 2
|
||||
} else if currV.Patch() < otherV.Patch() {
|
||||
comp *= 1
|
||||
}
|
||||
}
|
||||
|
||||
return comp, shouldUpdate
|
||||
}
|
||||
|
||||
func VersionIsOlderThan(version string, compare string) bool {
|
||||
comp, shouldUpdate := CompareVersion(version, compare)
|
||||
// shouldUpdate is false means the current version is newer
|
||||
return comp < 0 && shouldUpdate
|
||||
}
|
||||
Reference in New Issue
Block a user