diff options
author | Ivar Scholten <ivar.scholten@protonmail.com> | 2022-02-11 16:38:12 +0100 |
---|---|---|
committer | Ivar Scholten <ivar.scholten@protonmail.com> | 2022-02-11 16:38:12 +0100 |
commit | 1878b7b1b2fd3186e48511ba3a0ea8e3574664fc (patch) | |
tree | 81afa25b6d9d324186004e820fea6c62eb9d9287 /pkgs/build-support/dotnet | |
parent | b2b29319def269c0e542c6e4b080ff0c0a127522 (diff) | |
download | nixpkgs-1878b7b1b2fd3186e48511ba3a0ea8e3574664fc.tar nixpkgs-1878b7b1b2fd3186e48511ba3a0ea8e3574664fc.tar.gz nixpkgs-1878b7b1b2fd3186e48511ba3a0ea8e3574664fc.tar.bz2 nixpkgs-1878b7b1b2fd3186e48511ba3a0ea8e3574664fc.tar.lz nixpkgs-1878b7b1b2fd3186e48511ba3a0ea8e3574664fc.tar.xz nixpkgs-1878b7b1b2fd3186e48511ba3a0ea8e3574664fc.tar.zst nixpkgs-1878b7b1b2fd3186e48511ba3a0ea8e3574664fc.zip |
nuget-to-nix: move to pkgs/build-support/dotnet
Diffstat (limited to 'pkgs/build-support/dotnet')
-rw-r--r-- | pkgs/build-support/dotnet/nuget-to-nix/default.nix | 5 | ||||
-rwxr-xr-x | pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh | 23 |
2 files changed, 28 insertions, 0 deletions
diff --git a/pkgs/build-support/dotnet/nuget-to-nix/default.nix b/pkgs/build-support/dotnet/nuget-to-nix/default.nix new file mode 100644 index 00000000000..a5fc4e209cd --- /dev/null +++ b/pkgs/build-support/dotnet/nuget-to-nix/default.nix @@ -0,0 +1,5 @@ +{ runCommand }: + +runCommand "nuget-to-nix" { preferLocalBuild = true; } '' + install -D -m755 ${./nuget-to-nix.sh} $out/bin/nuget-to-nix +'' 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 new file mode 100755 index 00000000000..55a49937018 --- /dev/null +++ b/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +set -euo pipefail + +if [ $# -eq 0 ]; then + >&2 echo "Usage: $0 [packages directory] > deps.nix" + exit 1 +fi + +pkgs=$1 + +echo "{ fetchNuGet }: [" + +while read pkg_spec; do + { read pkg_name; read pkg_version; } < <( + # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3` + sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec") + pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)" + + echo " (fetchNuGet { pname = \"$pkg_name\"; version = \"$pkg_version\"; sha256 = \"$pkg_sha256\"; })" +done < <(find $1 -name '*.nuspec' | sort) + +echo "]" |