Skip to content

Commit

Permalink
Merge pull request #20 from dpolakovics/19-version-check-problem
Browse files Browse the repository at this point in the history
fix: version check works now
  • Loading branch information
dpolakovics authored Dec 15, 2024
2 parents 4b66c5d + 6b67212 commit 873078b
Showing 1 changed file with 49 additions and 23 deletions.
72 changes: 49 additions & 23 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,15 @@ import (
"fyne.io/fyne/v2/widget"

"github.com/google/go-github/v39/github"
"fmt"
"strings"
"strconv"
)

const (
owner = "dpolakovics"
repo = "soundscape-sync"
currentTag = "v0.10"
owner = "dpolakovics"
repo = "soundscape-sync"
currentTag = "v0.9"
)

func main() {
Expand All @@ -34,24 +37,47 @@ func main() {
}

func checkForUpdates(a fyne.App, w fyne.Window) {
client := github.NewClient(nil)
release, _, err := client.Repositories.GetLatestRelease(context.Background(), owner, repo)
if err != nil {
dialog.ShowError(err, w)
return
}

latestTag := release.GetTagName()
if latestTag > currentTag {
updateDialog := dialog.NewCustom("Update Available", "Close",
container.NewVBox(
widget.NewLabel("A new version is available!"),
widget.NewButton("Open Release Page", func() {
u, _ := url.Parse(release.GetHTMLURL())
_ = a.OpenURL(u)
}),
), w)
updateDialog.Resize(fyne.NewSize(300, 150))
updateDialog.Show()
}
client := github.NewClient(nil)
release, _, err := client.Repositories.GetLatestRelease(context.Background(), owner, repo)
if err != nil {
dialog.ShowError(err, w)
return
}

latestTag := release.GetTagName()
fmt.Println("Latest tag:", latestTag)
if isNewerVersion(currentTag, latestTag) {
updateDialog := dialog.NewCustom("Update Available", "Close",
container.NewVBox(
widget.NewLabel("A new version is available!"),
widget.NewButton("Open Release Page", func() {
u, _ := url.Parse(release.GetHTMLURL())
_ = a.OpenURL(u)
}),
), w)
updateDialog.Resize(fyne.NewSize(300, 150))
updateDialog.Show()
}
}

func isNewerVersion(oldVer, newVer string) bool {
// Strip leading 'v'
oldVer = strings.TrimPrefix(oldVer, "v")
newVer = strings.TrimPrefix(newVer, "v")

oldParts := strings.Split(oldVer, ".")
newParts := strings.Split(newVer, ".")

for i := 0; i < len(oldParts) && i < len(newParts); i++ {
oldNum, _ := strconv.Atoi(oldParts[i])
newNum, _ := strconv.Atoi(newParts[i])
if newNum > oldNum {
return true
} else if newNum < oldNum {
return false
}
}

// If all matched so far, then a longer new version means it's newer
return len(newParts) > len(oldParts)
}

0 comments on commit 873078b

Please sign in to comment.