2024-09-03 22:05:32 -04:00
|
|
|
{
|
|
|
|
symlinkJoin,
|
|
|
|
fetchurl,
|
|
|
|
stdenvNoCC,
|
|
|
|
lib,
|
|
|
|
unzip,
|
|
|
|
patchNupkgs,
|
|
|
|
nugetPackageHook,
|
|
|
|
}:
|
|
|
|
{
|
|
|
|
pname,
|
|
|
|
version,
|
|
|
|
sha256 ? "",
|
|
|
|
hash ? "",
|
|
|
|
url ? "https://www.nuget.org/api/v2/package/${pname}/${version}",
|
|
|
|
installable ? false,
|
|
|
|
}:
|
|
|
|
stdenvNoCC.mkDerivation rec {
|
|
|
|
inherit pname version;
|
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
name = "${pname}.${version}.nupkg";
|
|
|
|
# There is no need to verify whether both sha256 and hash are
|
|
|
|
# valid here, because nuget-to-nix does not generate a deps.nix
|
|
|
|
# containing both.
|
|
|
|
inherit
|
|
|
|
url
|
|
|
|
sha256
|
|
|
|
hash
|
|
|
|
version
|
|
|
|
;
|
|
|
|
};
|
|
|
|
|
|
|
|
nativeBuildInputs = [
|
|
|
|
unzip
|
|
|
|
patchNupkgs
|
|
|
|
nugetPackageHook
|
|
|
|
];
|
|
|
|
|
|
|
|
unpackPhase = ''
|
2024-09-03 22:10:54 -04:00
|
|
|
runHook preUnpack
|
|
|
|
|
2024-09-03 22:05:32 -04:00
|
|
|
unzip -nqd source $src
|
|
|
|
chmod -R +rw source
|
|
|
|
cd source
|
2024-09-03 22:10:54 -04:00
|
|
|
|
|
|
|
runHook postUnpack
|
2024-09-03 22:05:32 -04:00
|
|
|
'';
|
|
|
|
|
|
|
|
prePatch = ''
|
|
|
|
shopt -s nullglob
|
|
|
|
local dir
|
|
|
|
for dir in tools runtimes/*/native; do
|
|
|
|
[[ ! -d "$dir" ]] || chmod -R +x "$dir"
|
|
|
|
done
|
|
|
|
rm -rf .signature.p7s
|
|
|
|
'';
|
|
|
|
|
|
|
|
installPhase = ''
|
2024-09-03 22:10:54 -04:00
|
|
|
runHook preInstall
|
|
|
|
|
2024-09-03 22:05:32 -04:00
|
|
|
dir=$out/share/nuget/packages/${lib.toLower pname}/${lib.toLower version}
|
|
|
|
mkdir -p $dir
|
|
|
|
cp -r . $dir
|
|
|
|
echo {} > "$dir"/.nupkg.metadata
|
2024-09-03 22:10:54 -04:00
|
|
|
|
|
|
|
runHook postInstall
|
2024-09-03 22:05:32 -04:00
|
|
|
'';
|
|
|
|
|
|
|
|
preFixup = ''
|
|
|
|
patch-nupkgs $out/share/nuget/packages
|
|
|
|
'';
|
|
|
|
|
|
|
|
createInstallableNugetSource = installable;
|
|
|
|
}
|