diff options
Diffstat (limited to 'pkgs/development/compilers/dotnet/update.nix')
-rw-r--r-- | pkgs/development/compilers/dotnet/update.nix | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/pkgs/development/compilers/dotnet/update.nix b/pkgs/development/compilers/dotnet/update.nix deleted file mode 100644 index 58304188afa8..000000000000 --- a/pkgs/development/compilers/dotnet/update.nix +++ /dev/null @@ -1,125 +0,0 @@ -{ stdenvNoCC -, lib -, fetchurl -, writeScript -, nix -, runtimeShell -, curl -, cacert -, jq -, yq -, gnupg - -, releaseManifestFile -, releaseInfoFile -, allowPrerelease -}: - -let - inherit (lib.importJSON releaseManifestFile) channel release; - - pkg = stdenvNoCC.mkDerivation { - name = "update-dotnet-vmr-env"; - - nativeBuildInputs = [ - nix - curl - cacert - jq - yq - gnupg - ]; - }; - - releaseKey = fetchurl { - url = "https://dotnet.microsoft.com/download/dotnet/release-key-2023.asc"; - hash = "sha256-F668QB55md0GQvoG0jeA66Fb2RbrsRhFTzTbXIX3GUo="; - }; - - drv = builtins.unsafeDiscardOutputDependency pkg.drvPath; - -in writeScript "update-dotnet-vmr.sh" '' - #! ${nix}/bin/nix-shell - #! nix-shell -i ${runtimeShell} --pure ${drv} - set -euo pipefail - - query=$(cat <<EOF - map( - select( - ${lib.optionalString (!allowPrerelease) ".prerelease == false and"} - .draft == false and - (.name | startswith(".NET ${channel}")))) | - first | ( - .tag_name, - (.assets | - .[] | - select(.name == "release.json") | - .browser_download_url), - (.assets | - .[] | - select(.name | endswith(".tar.gz.sig")) | - .browser_download_url)) - EOF - ) - - ( - curl -fsL https://api.github.com/repos/dotnet/dotnet/releases | \ - jq -r "$query" \ - ) | ( - read tagName - read releaseUrl - read sigUrl - - tmp="$(mktemp -d)" - trap 'rm -rf "$tmp"' EXIT - - cd "$tmp" - - curl -fsL "$releaseUrl" -o release.json - release=$(jq -r .release release.json) - - if [[ "$release" == "${release}" ]]; then - >&2 echo "release is already $release" - exit - fi - - tarballUrl=https://github.com/dotnet/dotnet/archive/refs/tags/$tagName.tar.gz - - mapfile -t prefetch < <(nix-prefetch-url --print-path "$tarballUrl") - tarballHash=$(nix-hash --to-sri --type sha256 "''${prefetch[0]}") - tarball=''${prefetch[1]} - - curl -L "$sigUrl" -o release.sig - - export GNUPGHOME=$PWD/.gnupg - gpg --batch --import ${releaseKey} - gpg --batch --verify release.sig "$tarball" - - tar --strip-components=1 --no-wildcards-match-slash --wildcards -xzf "$tarball" \*/eng/Versions.props - artifactsVersion=$(xq -r '.Project.PropertyGroup | - map(select(.PrivateSourceBuiltArtifactsVersion)) - | .[] | .PrivateSourceBuiltArtifactsVersion' eng/Versions.props) - - if [[ "$artifactsVersion" != "" ]]; then - artifactsUrl=https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.$artifactsVersion.centos.9-x64.tar.gz - else - artifactsUrl=$(xq -r '.Project.PropertyGroup | - map(select(.PrivateSourceBuiltArtifactsUrl)) - | .[] | .PrivateSourceBuiltArtifactsUrl' eng/Versions.props) - fi - - artifactsHash=$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url "$artifactsUrl")") - - jq --null-input \ - --arg _0 "$tarballHash" \ - --arg _1 "$artifactsUrl" \ - --arg _2 "$artifactsHash" \ - '{ - "tarballHash": $_0, - "artifactsUrl": $_1, - "artifactsHash": $_2, - }' > "${toString releaseInfoFile}" - - cp release.json "${toString releaseManifestFile}" - ) -'' |