···2324mapfile -t sources < <(dotnet nuget list source --format short | awk '/^E / { print $2 }')
25026declare -A base_addresses
2728for index in "${sources[@]}"; do
29- base_addresses[$index]=$(
00000030 curl --compressed --netrc -fsL "$index" | \
31 jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"')
32done
···3536cd "$pkgs"
37for package in *; do
038 cd "$package"
39 for version in *; do
40 id=$(xq -r .package.metadata.id "$version"/*.nuspec)
···44 fi
4546 used_source="$(jq -r '.source' "$version"/.nupkg.metadata)"
47- for source in "${sources[@]}"; do
0000048 url="${base_addresses[$source]}$package/$version/$package.$version.nupkg"
49 if [[ "$source" == "$used_source" ]]; then
50 sha256="$(nix-hash --type sha256 --flat --base32 "$version/$package.$version".nupkg)"
···2324mapfile -t sources < <(dotnet nuget list source --format short | awk '/^E / { print $2 }')
2526+declare -a remote_sources
27declare -A base_addresses
2829for index in "${sources[@]}"; do
30+ if [[ -d "$index" ]]; then
31+ continue
32+ fi
33+34+ remote_sources+=($index)
35+36+ base_addresses[$index]=$(
37 curl --compressed --netrc -fsL "$index" | \
38 jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"')
39done
···4243cd "$pkgs"
44for package in *; do
45+ [[ -d "$package" ]] || continue
46 cd "$package"
47 for version in *; do
48 id=$(xq -r .package.metadata.id "$version"/*.nuspec)
···52 fi
5354 used_source="$(jq -r '.source' "$version"/.nupkg.metadata)"
55+56+ if [[ -d "$used_source" ]]; then
57+ continue
58+ fi
59+60+ for source in "${remote_sources[@]}"; do
61 url="${base_addresses[$source]}$package/$version/$package.$version.nupkg"
62 if [[ "$source" == "$used_source" ]]; then
63 sha256="$(nix-hash --type sha256 --flat --base32 "$version/$package.$version".nupkg)"