The source used to download a particular package still isn't deterministic in nuget. Even worse, the hash of the package can vary between sources. This makes nuget use the first enabled source containing the package. The order of the dependencies may be slightly different because it now uses glob order of the lower-case package names and versions, instead of sorting the output. If the package actually downloaded was the first source that contains the package, then it will be hashed from disk to avoid downloading it again.
36 lines
532 B
Nix
36 lines
532 B
Nix
{ lib
|
|
, runCommandLocal
|
|
, runtimeShell
|
|
, substituteAll
|
|
, nix
|
|
, coreutils
|
|
, jq
|
|
, yq
|
|
, curl
|
|
, gnugrep
|
|
, gawk
|
|
, dotnet-sdk
|
|
}:
|
|
|
|
runCommandLocal "nuget-to-nix" {
|
|
script = substituteAll {
|
|
src = ./nuget-to-nix.sh;
|
|
inherit runtimeShell;
|
|
|
|
binPath = lib.makeBinPath [
|
|
nix
|
|
coreutils
|
|
jq
|
|
yq
|
|
curl
|
|
gnugrep
|
|
gawk
|
|
dotnet-sdk
|
|
];
|
|
};
|
|
|
|
meta.description = "Convert a nuget packages directory to a lockfile for buildDotnetModule";
|
|
} ''
|
|
install -Dm755 $script $out/bin/nuget-to-nix
|
|
''
|