lol

dotnet-sdk: update.sh - allow early exit. If updating to the latest version, and the local expression already is the latest version, exit without regenerating everything.

mdarocha a9fc578f b93a1f45

+16 -1
+16 -1
pkgs/development/compilers/dotnet/update.sh
··· 297 297 major_minor=$(sed 's/^\([0-9]*\.[0-9]*\).*$/\1/' <<< "$sem_version") 298 298 content=$(curl -sL https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/"$major_minor"/releases.json) 299 299 major_minor_patch=$([ "$patch_specified" == true ] && echo "$sem_version" || jq -r '."latest-release"' <<< "$content") 300 + major_minor_underscore=${major_minor/./_} 300 301 301 302 release_content=$(release "$content" "$major_minor_patch") 302 303 aspnetcore_version=$(jq -r '."aspnetcore-runtime".version' <<< "$release_content") 303 304 runtime_version=$(jq -r '.runtime.version' <<< "$release_content") 304 305 sdk_version=$(jq -r '.sdk.version' <<< "$release_content") 305 306 307 + # If patch was not specified, check if the package is already the latest version 308 + # If it is, exit early 309 + if [ "$patch_specified" == false ] && [ -f "./versions/${sem_version}.nix" ]; then 310 + current_version=$(nix-instantiate --eval -E "(import ./versions/${sem_version}.nix { \ 311 + buildAspNetCore = { ... }: {}; \ 312 + buildNetRuntime = { ... }: {}; \ 313 + buildNetSdk = { version, ... }: version; \ 314 + icu = null; }).sdk_${major_minor_underscore}" | jq -r) 315 + 316 + if [[ "$current_version" == "$sdk_version" ]]; then 317 + echo "Nothing to update." 318 + exit 319 + fi 320 + fi 321 + 306 322 aspnetcore_files="$(release_files "$release_content" "aspnetcore-runtime")" 307 323 runtime_files="$(release_files "$release_content" "runtime")" 308 324 sdk_files="$(release_files "$release_content" "sdk")" 309 325 310 - major_minor_underscore=${major_minor/./_} 311 326 channel_version=$(jq -r '."channel-version"' <<< "$content") 312 327 support_phase=$(jq -r '."support-phase"' <<< "$content") 313 328 echo "{ buildAspNetCore, buildNetRuntime, buildNetSdk, icu }: