diff options
author | David McFarland <corngood@gmail.com> | 2024-03-03 15:02:14 -0400 |
---|---|---|
committer | David McFarland <corngood@gmail.com> | 2024-03-03 15:15:08 -0400 |
commit | 845b559abe7dea12b2f3d4a98cf5326e0f1e195b (patch) | |
tree | e0dde03b146d1694204e7f86914f6b36f2d5a378 /pkgs/development/compilers/dotnet | |
parent | 6b047e397a29e41f87c3daf4c3acce0bd6538c00 (diff) |
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).
Diffstat (limited to 'pkgs/development/compilers/dotnet')
-rwxr-xr-x | pkgs/development/compilers/dotnet/update.sh | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/pkgs/development/compilers/dotnet/update.sh b/pkgs/development/compilers/dotnet/update.sh index 6dbf3c1943b37..f9f198b05e2f0 100755 --- a/pkgs/development/compilers/dotnet/update.sh +++ b/pkgs/development/compilers/dotnet/update.sh @@ -8,7 +8,7 @@ release () { local content="$1" local version="$2" - jq -r '.releases[] | select(."release-version" == "'"$version"'")' <<< "$content" + jq -r '.releases[] | select(.sdks[] | ."version" == "'"$version"'")' <<< "$content" } release_files () { @@ -18,6 +18,14 @@ 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" local platform="$2" @@ -321,13 +329,13 @@ Examples: # 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 @@ -346,7 +354,7 @@ Examples: 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") |