dotnet/update.sh: use sdk patch version instead of runtime

There's a one:many relationship between runtimes and sdks. This allows
fetching a specific SDK (e.g. 8.0.102 vs 8.0.201), even when both use
the same runtime (8.0.2).

Changed files
+13 -5
pkgs
development
compilers
dotnet
+13 -5
pkgs/development/compilers/dotnet/update.sh
···
local content="$1"
local version="$2"
-
jq -r '.releases[] | select(."release-version" == "'"$version"'")' <<< "$content"
+
jq -r '.releases[] | select(.sdks[] | ."version" == "'"$version"'")' <<< "$content"
}
release_files () {
···
jq -r '[."'"$type"'".files[] | select(.name | test("^.*.tar.gz$"))]' <<< "$release"
}
+
+
sdk_files () {
+
local release="$1"
+
local version="$2"
+
+
jq -r '[.sdks[] | select(.version == "'"$version"'") | .files[] | select(.name | test("^.*.tar.gz$"))]' <<< "$release"
+
}
+
release_platform_attr () {
local release_files="$1"
···
# Then get the json file and parse it to find the latest patch release.
major_minor=$(sed 's/^\([0-9]*\.[0-9]*\).*$/\1/' <<< "$sem_version")
content=$(curl -sL https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/"$major_minor"/releases.json)
-
major_minor_patch=$([ "$patch_specified" == true ] && echo "$sem_version" || jq -r '."latest-release"' <<< "$content")
+
major_minor_patch=$([ "$patch_specified" == true ] && echo "$sem_version" || jq -r '."latest-sdk"' <<< "$content")
major_minor_underscore=${major_minor/./_}
-
release_content=$(release "$content" "$major_minor_patch")
+
sdk_version=$major_minor_patch
+
release_content=$(release "$content" "$sdk_version")
aspnetcore_version=$(jq -r '."aspnetcore-runtime".version' <<< "$release_content")
runtime_version=$(jq -r '.runtime.version' <<< "$release_content")
-
sdk_version=$(jq -r '.sdk.version' <<< "$release_content")
# If patch was not specified, check if the package is already the latest version
# If it is, exit early
···
aspnetcore_files="$(release_files "$release_content" "aspnetcore-runtime")"
runtime_files="$(release_files "$release_content" "runtime")"
-
sdk_files="$(release_files "$release_content" "sdk")"
+
sdk_files="$(sdk_files "$release_content" "$sdk_version")"
channel_version=$(jq -r '."channel-version"' <<< "$content")
support_phase=$(jq -r '."support-phase"' <<< "$content")