Don't consider prereleases for -upgrade (fixes #436)

This commit is contained in:
Jakob Borg 2014-07-24 12:59:51 +02:00
parent 58cc108c0c
commit 6065b6cb93

View File

@ -28,7 +28,7 @@ import (
type githubRelease struct {
Tag string `json:"tag_name"`
Prelease bool `json:"prerelease"`
Prerelease bool `json:"prerelease"`
Assets []githubAsset `json:"assets"`
}
@ -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: