msbuild: 16.3 -> 16.8

This commit is contained in:
David McFarland
2021-03-09 13:37:51 -04:00
parent d386cb4000
commit 3898c9a357
4 changed files with 1631 additions and 1355 deletions
@@ -1,29 +1,54 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p msbuild
#!nix-shell -i bash -p jq -p xmlstarlet -p curl
set -euo pipefail
cat << EOL
{ fetchurl }: [
EOL
tmpdir="$(mktemp -d -p "$(pwd)")" # must be under source root
trap 'rm -rf $tmpdir' EXIT
mapfile -t repos < <(
xmlstarlet sel -t -v 'configuration/packageSources/add/@value' -n NuGet.config |
while IFS= read index
do
curl --compressed -fsL "$index" | \
jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"'
done
)
find .packages fake-home/.nuget/packages -name \*.nupkg -printf '%P\n' | sort -u |
while IFS= read file
do
packagedir=$(dirname $file)
version=$(basename $packagedir)
package=$(dirname $packagedir)
found=false
for repo in "${repos[@]}"
do
url="$repo$package/$version/$package.$version.nupkg"
if curl -fsL "$url" -o /dev/null
then
found=true
break
fi
done
if ! $found
then
echo "couldn't find $package $version" >&2
exit 1
fi
(
ulimit -n 8192 # https://github.com/NuGet/Home/issues/8571
export HOME="$tmpdir"
msbuild -noAutoRsp -t:restore -p:RestoreNoCache=true MSBuild.sln
msbuild -noAutoRsp -t:restore -p:RestoreNoCache=true "$tmpdir"/.nuget/packages/microsoft.dotnet.arcade.sdk/*/tools/Tools.proj
) | \
sed -nr 's/^ *OK *(.*\.nupkg).*$/\1/p' | \
sort -u | \
while read url; do
sha256=$(nix-prefetch-url "$url" 2>/dev/null)
cat << EOL
(fetchurl {
url = "$url";
sha256 = "$sha256";
})
{
name = "$package";
version = "$version";
src = fetchurl {
url = "$url";
sha256 = "$sha256";
};
}
EOL
done