Fix modrinth semver handling (fixes #60)

This commit is contained in:
comp500 2021-10-03 18:30:44 +01:00
parent 67c05d8376
commit ac9225ff93

View File

@ -7,6 +7,7 @@ import (
"io/ioutil" "io/ioutil"
"net/http" "net/http"
"net/url" "net/url"
"strings"
"time" "time"
"github.com/comp500/packwiz/cmd" "github.com/comp500/packwiz/cmd"
@ -207,9 +208,14 @@ func getLatestVersion(modID string, pack core.Pack) (Version, error) {
return Version{}, err return Version{}, err
} }
var latestValidVersion Version if len(result) == 0 {
for _, v := range result { return Version{}, errors.New("no valid versions found")
var semverCompare = semver.Compare(v.VersionNumber, latestValidVersion.VersionNumber) }
latestValidVersion := result[0]
for _, v := range result[1:] {
// For some reason, this library requires a "v" prefix for all version numbers
var semverCompare = semver.Compare("v"+strings.TrimPrefix(v.VersionNumber, "v"), "v"+strings.TrimPrefix(latestValidVersion.VersionNumber, "v"))
if semverCompare == 0 { if semverCompare == 0 {
//Semver is equal, compare date instead //Semver is equal, compare date instead
vDate, _ := time.Parse(time.RFC3339Nano, v.DatePublished) vDate, _ := time.Parse(time.RFC3339Nano, v.DatePublished)