Skip to content
Snippets Groups Projects
Commit ff7a1b89 authored by Bensong Liu's avatar Bensong Liu
Browse files

bug fix

parent 5247c3a1
No related branches found
No related tags found
No related merge requests found
......@@ -51,7 +51,7 @@ func netVersionNugetFormatToStandardFormat(netVersionNugetFormat string) string
} else if strings.HasPrefix(netVersionNugetFormat, ".netstandard") {
return netVersionNugetFormat[1:]
} else {
panic("Unknown nuget-format net version: " + netVersionNugetFormat)
return "netunknown" // do not panic please
}
}
......@@ -183,6 +183,8 @@ func decidePackageVersion(frameworkVersion, packageVersion string, indexJsons, i
// This function is very ugly. Fucking go-json library and go exception.
defer func() {recover()} ()
possibleAvailableVersion, possibleAvailableVersionUrl, PossibleAvailableVersionUrlLogin := "", "", ""
for indexJson_currIndex, indexJson := range indexJsons {
func () {
defer func() { recover() }() // try parse, skip this entry on error
......@@ -201,28 +203,30 @@ func decidePackageVersion(frameworkVersion, packageVersion string, indexJsons, i
jPkgVersionItem := jPkgVersionItem_.(map[string]interface{})
jCatalogEntry := jPkgVersionItem["catalogEntry"].(map[string]interface{})
myVersionText := jCatalogEntry["version"].(string)
myVersionUrl := jPkgVersionItem["packageContent"].(string)
// log.Println("DEBUG: reaching " + myVersionText)
// Let's check if this version is ok
thisPkgVersionIsOk := false
thisPkgVersionIsOk, thisPkgVersionIsPossibleOk := false, false
if frameworkVersion != "" {
if j5, ok := jCatalogEntry["dependencyGroups"]; ok {
for _, j6 := range j5.([]interface{}) {
j7 := j6.(map[string]interface{})
if j8, ok := j7["targetFramework"]; ok {
// log.Println("DEBUG: " + frameworkVersion +" vs "+ netVersionNugetFormatToStandardFormat(j8.(string)))
if frameworkVersion == netVersionNugetFormatToStandardFormat(j8.(string)) {
thisPkgVersionIsOk = true
break
}
} else {
// this pkgVersion has no targetFramework limitation.
thisPkgVersionIsOk = true
thisPkgVersionIsPossibleOk = true
}
}
} else {
// no dependencyGroups at all
thisPkgVersionIsOk = true
thisPkgVersionIsPossibleOk = true
}
}
......@@ -233,7 +237,6 @@ func decidePackageVersion(frameworkVersion, packageVersion string, indexJsons, i
if thisPkgVersionIsOk {
// log.Println("DEBUG: good " + myVersionText)
// This version is ok! Log it.
myVersionUrl := jPkgVersionItem["packageContent"].(string)
if version.CompareSimple(myVersionText, maxAvailableVersion) == 1 {
// if left > right
maxAvailableVersion = myVersionText
......@@ -241,6 +244,15 @@ func decidePackageVersion(frameworkVersion, packageVersion string, indexJsons, i
maxAvailableVersionUrlLogin = indexJsons_Login[indexJson_currIndex]
}
}
if thisPkgVersionIsPossibleOk {
// log.Println("DEBUG: possible good " + myVersionText)
if version.CompareSimple(myVersionText, possibleAvailableVersion) == 1 {
// if left > right
possibleAvailableVersion = myVersionText
possibleAvailableVersionUrl = myVersionUrl
PossibleAvailableVersionUrlLogin = indexJsons_Login[indexJson_currIndex]
}
}
// log.Println("DEBUG: leaving " + myVersionText)
}() // catch exception and continue
}
......@@ -248,6 +260,13 @@ func decidePackageVersion(frameworkVersion, packageVersion string, indexJsons, i
}() // catch exception and continue
}
if maxAvailableVersion == "" {
// That's so bad... No confirmed working version, let's use a possible working one.
maxAvailableVersion = possibleAvailableVersion
maxAvailableVersionUrl = possibleAvailableVersionUrl
maxAvailableVersionUrlLogin = PossibleAvailableVersionUrlLogin
}
return
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment