msbuild: 16.3 -> 16.8
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user