Fixup version handling

This commit is contained in:
Justin Hawkins 2025-05-03 12:14:59 +09:30
parent ade0b748e9
commit a7c37ad7c5
2 changed files with 20 additions and 6 deletions

View File

@ -3,6 +3,7 @@ package version
import ( import (
"context" "context"
"fmt" "fmt"
"log"
"strings" "strings"
"sync" "sync"
@ -10,7 +11,7 @@ import (
"golang.org/x/mod/semver" "golang.org/x/mod/semver"
) )
var version string var version string // populated by goreleaser, without leading 'v'
var commit string var commit string
var date string var date string
@ -18,7 +19,7 @@ var VersionInfo Info
func init() { func init() {
VersionInfo.Remote.Valid = false VersionInfo.Remote.Valid = false
VersionInfo.Local.Version = version VersionInfo.Local.Version = "v" + version
} }
type Info struct { type Info struct {
@ -39,10 +40,23 @@ func (vi *Info) UpgradeAvailable() bool {
if !vi.Remote.Valid { if !vi.Remote.Valid {
return false return false
} }
if semver.Compare(vi.Local.Version, vi.Remote.Tag) < 0 {
return true log.Printf("checking if upgrade available - local %s remote %s", vi.Local.Version, vi.Remote.Tag)
localValid := semver.IsValid(vi.Local.Version)
remoteValid := semver.IsValid(vi.Remote.Tag)
if !localValid {
log.Printf("version %s invalid", vi.Local.Version)
} }
if !remoteValid {
log.Printf("version %s invalid", vi.Remote.Tag)
}
if !localValid || !remoteValid {
return false return false
}
return semver.Compare(vi.Local.Version, vi.Remote.Tag) < 0
} }
func (vi *Info) UpdateVersionInfo() { func (vi *Info) UpdateVersionInfo() {

View File

@ -26,7 +26,7 @@
<a href="https://github.com/tardisx/linkwallet/releases/tag/{{ version.Remote.Tag }}"> <a href="https://github.com/tardisx/linkwallet/releases/tag/{{ version.Remote.Tag }}">
{{ version.Remote.Tag }} {{ version.Remote.Tag }}
</a> </a>
(you have {{ version.Local.Tag }}). (you have {{ version.Local.Version }}).
</p> </p>
{{ markdown version.UpgradeReleaseNotes }} {{ markdown version.UpgradeReleaseNotes }}