diff options
Diffstat (limited to 'pkgs/build-support/fetchnuget/default.nix')
-rw-r--r-- | pkgs/build-support/fetchnuget/default.nix | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/build-support/fetchnuget/default.nix b/pkgs/build-support/fetchnuget/default.nix new file mode 100644 index 000000000000..803db27c9d56 --- /dev/null +++ b/pkgs/build-support/fetchnuget/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, buildDotnetPackage, unzip }: + +attrs @ +{ baseName +, version +, url ? "https://www.nuget.org/api/v2/package/${baseName}/${version}" +, sha256 ? "" +, md5 ? "" +, ... +}: + buildDotnetPackage ({ + src = fetchurl { + inherit url sha256 md5; + name = "${baseName}.${version}.zip"; + }; + + sourceRoot = "."; + + buildInputs = [ unzip ]; + + phases = [ "unpackPhase" "installPhase" ]; + + preInstall = '' + function traverseRename () { + for e in * + do + t="$(echo "$e" | sed -e "s/%20/\ /g" -e "s/%2B/+/g")" + [ "$t" != "$e" ] && mv -vn "$e" "$t" + if [ -d "$t" ] + then + cd "$t" + traverseRename + cd .. + fi + done + } + + traverseRename + ''; + } // attrs) |