diff options
Diffstat (limited to 'pkgs/build-support')
3 files changed, 16 insertions, 4 deletions
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix index af960fb1d617..15a753df0772 100644 --- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix +++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix @@ -114,7 +114,6 @@ let then nugetDeps else mkNugetDeps { inherit name; - nugetDeps = import nugetDeps; sourceFile = nugetDeps; } else throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated by running the `passthru.fetch-deps` script."; diff --git a/pkgs/build-support/dotnet/make-nuget-deps/default.nix b/pkgs/build-support/dotnet/make-nuget-deps/default.nix index 8281976df626..fcd3f9f076b2 100644 --- a/pkgs/build-support/dotnet/make-nuget-deps/default.nix +++ b/pkgs/build-support/dotnet/make-nuget-deps/default.nix @@ -1,5 +1,5 @@ { linkFarmFromDrvs, fetchurl }: -{ name, nugetDeps, sourceFile ? null }: +{ name, nugetDeps ? import sourceFile, sourceFile ? null }: linkFarmFromDrvs "${name}-nuget-deps" (nugetDeps { fetchNuGet = { pname, version, sha256 , url ? "https://www.nuget.org/api/v2/package/${pname}/${version}" }: diff --git a/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh b/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh index 34c42929857d..def59954e480 100755 --- a/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh +++ b/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh @@ -23,10 +23,17 @@ export DOTNET_CLI_TELEMETRY_OPTOUT=1 mapfile -t sources < <(dotnet nuget list source --format short | awk '/^E / { print $2 }') +declare -a remote_sources declare -A base_addresses for index in "${sources[@]}"; do - base_addresses[$index]=$( + if [[ -d "$index" ]]; then + continue + fi + + remote_sources+=($index) + + base_addresses[$index]=$( curl --compressed --netrc -fsL "$index" | \ jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"') done @@ -35,6 +42,7 @@ echo "{ fetchNuGet }: [" cd "$pkgs" for package in *; do + [[ -d "$package" ]] || continue cd "$package" for version in *; do id=$(xq -r .package.metadata.id "$version"/*.nuspec) @@ -44,7 +52,12 @@ for package in *; do fi used_source="$(jq -r '.source' "$version"/.nupkg.metadata)" - for source in "${sources[@]}"; do + + if [[ -d "$used_source" ]]; then + continue + fi + + for source in "${remote_sources[@]}"; do url="${base_addresses[$source]}$package/$version/$package.$version.nupkg" if [[ "$source" == "$used_source" ]]; then sha256="$(nix-hash --type sha256 --flat --base32 "$version/$package.$version".nupkg)" |