MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / ComparePanelVersion

Function ComparePanelVersion

core/utils/common/common.go:80–115  ·  view source on GitHub ↗
(version1, version2 string)

Source from the content-addressed store, hash-verified

78}
79
80func ComparePanelVersion(version1, version2 string) bool {
81 if version1 == version2 {
82 return false
83 }
84 version1s := SplitStr(version1, ".", "-")
85 version2s := SplitStr(version2, ".", "-")
86
87 if len(version2s) > len(version1s) {
88 for i := 0; i < len(version2s)-len(version1s); i++ {
89 version1s = append(version1s, "0")
90 }
91 }
92 if len(version1s) > len(version2s) {
93 for i := 0; i < len(version1s)-len(version2s); i++ {
94 version2s = append(version2s, "0")
95 }
96 }
97
98 n := min(len(version1s), len(version2s))
99 for i := 0; i < n; i++ {
100 if version1s[i] == version2s[i] {
101 continue
102 } else {
103 v1, err1 := strconv.Atoi(version1s[i])
104 if err1 != nil {
105 return version1s[i] > version2s[i]
106 }
107 v2, err2 := strconv.Atoi(version2s[i])
108 if err2 != nil {
109 return version1s[i] > version2s[i]
110 }
111 return v1 > v2
112 }
113 }
114 return true
115}
116
117func SplitStr(str string, spi ...string) []string {
118 lists := []string{str}

Callers

nothing calls this directly

Calls 2

minFunction · 0.85
SplitStrFunction · 0.70

Tested by

no test coverage detected