summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/syncthing/upgrade_supported.go21
1 files changed, 14 insertions, 7 deletions
diff --git a/cmd/syncthing/upgrade_supported.go b/cmd/syncthing/upgrade_supported.go
index c7f70c57f4..05e61c4ce3 100644
--- a/cmd/syncthing/upgrade_supported.go
+++ b/cmd/syncthing/upgrade_supported.go
@@ -27,9 +27,9 @@ import (
)
type githubRelease struct {
- Tag string `json:"tag_name"`
- Prelease bool `json:"prerelease"`
- Assets []githubAsset `json:"assets"`
+ Tag string `json:"tag_name"`
+ Prerelease bool `json:"prerelease"`
+ Assets []githubAsset `json:"assets"`
}
type githubAsset struct {
@@ -49,7 +49,7 @@ func upgrade() error {
return err
}
- resp, err := http.Get("https://api.github.com/repos/calmh/syncthing/releases?per_page=1")
+ resp, err := http.Get("https://api.github.com/repos/calmh/syncthing/releases?per_page=10")
if err != nil {
return err
}
@@ -58,10 +58,17 @@ func upgrade() error {
json.NewDecoder(resp.Body).Decode(&rels)
resp.Body.Close()
- if len(rels) != 1 {
- return fmt.Errorf("Unexpected number of releases: %d", len(rels))
+ var rel githubRelease
+ for _, trel := range rels {
+ if !trel.Prerelease {
+ rel = trel
+ break
+ }
+ }
+
+ if len(rel.Tag) == 0 {
+ return errors.New("no suitable release found")
}
- rel := rels[0]
switch compareVersions(rel.Tag, Version) {
case -1: