feat: add updater package for in-place self-update

This commit is contained in:
Mathis Maquenne
2026-07-30 11:30:08 +02:00
parent 0e0cbdad5e
commit eb93d01c19
5 changed files with 498 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
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
}