summary refs log tree commit diff
path: root/pkgs/build-support/dotnet/build-dotnet-module/default.nix
diff options
context:
space:
mode:
authorEvan Petousis <evan@petousis.net>2022-08-01 21:21:30 +1000
committerEvan Petousis <evan@petousis.net>2022-08-18 23:36:25 +1000
commitc51e1a1fbae2bd14e0df183a50df6f1bd64780a3 (patch)
tree2ddf9bb080f641f2abe850016d14538a3608e68a /pkgs/build-support/dotnet/build-dotnet-module/default.nix
parentd7728dfc671c56a1929665abd1e2fd07d64360e1 (diff)
downloadnixpkgs-c51e1a1fbae2bd14e0df183a50df6f1bd64780a3.tar
nixpkgs-c51e1a1fbae2bd14e0df183a50df6f1bd64780a3.tar.gz
nixpkgs-c51e1a1fbae2bd14e0df183a50df6f1bd64780a3.tar.bz2
nixpkgs-c51e1a1fbae2bd14e0df183a50df6f1bd64780a3.tar.lz
nixpkgs-c51e1a1fbae2bd14e0df183a50df6f1bd64780a3.tar.xz
nixpkgs-c51e1a1fbae2bd14e0df183a50df6f1bd64780a3.tar.zst
nixpkgs-c51e1a1fbae2bd14e0df183a50df6f1bd64780a3.zip
buildDotnetModule: use coreutils in fetch-deps
cp on macOS doesn't support the -T flag, which causes the fetch-deps
script to fail. Use Nix's coreutils to ensure the script works
consistently across all platforms.
Diffstat (limited to 'pkgs/build-support/dotnet/build-dotnet-module/default.nix')
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/default.nix22
1 files changed, 11 insertions, 11 deletions
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
index 5ccff2f2a19..b24b2f9d191 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert, srcOnly, symlinkJoin }:
+{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert, srcOnly, symlinkJoin, coreutils }:
 
 { name ? "${args.pname}-${args.version}"
 , pname ? name
@@ -138,23 +138,23 @@ in stdenvNoCC.mkDerivation (args // {
       exclusions = dotnet-sdk.passthru.packages { fetchNuGet = attrs: attrs.pname; };
     in writeScript "fetch-${pname}-deps" ''
       set -euo pipefail
-      cd "$(dirname "''${BASH_SOURCE[0]}")"
+      cd "$(${coreutils}/bin/dirname "''${BASH_SOURCE[0]}")"
 
-      export HOME=$(mktemp -d)
+      export HOME=$(${coreutils}/bin/mktemp -d)
       deps_file="/tmp/${pname}-deps.nix"
 
       store_src="${srcOnly args}"
-      src="$(mktemp -d /tmp/${pname}.XXX)"
-      cp -r "$store_src/." "$src"
-      chmod -R +w "$src"
+      src="$(${coreutils}/bin/mktemp -d /tmp/${pname}.XXX)"
+      ${coreutils}/bin/cp -rT "$store_src" "$src"
+      ${coreutils}/bin/chmod -R +w "$src"
 
-      trap "rm -rf $src $HOME" EXIT
+      trap "${coreutils}/bin/rm -rf $src $HOME" EXIT
       pushd "$src"
 
       export DOTNET_NOLOGO=1
       export DOTNET_CLI_TELEMETRY_OPTOUT=1
 
-      mkdir -p "$HOME/nuget_pkgs"
+      ${coreutils}/bin/mkdir -p "$HOME/nuget_pkgs"
 
       for project in "${lib.concatStringsSep "\" \"" ((lib.toList projectFile) ++ lib.optionals (testProjectFile != "") (lib.toList testProjectFile))}"; do
         ${dotnet-sdk}/bin/dotnet restore "$project" \
@@ -166,11 +166,11 @@ in stdenvNoCC.mkDerivation (args // {
           ${lib.optionalString (dotnetFlags != []) (builtins.toString dotnetFlags)}
       done
 
-      echo "${lib.concatStringsSep "\n" exclusions}" > "$HOME/package_exclusions"
+      ${coreutils}/bin/echo "${lib.concatStringsSep "\n" exclusions}" > "$HOME/package_exclusions"
 
-      echo "Writing lockfile..."
+      ${coreutils}/bin/echo "Writing lockfile..."
       ${nuget-to-nix}/bin/nuget-to-nix "$HOME/nuget_pkgs" "$HOME/package_exclusions" > "$deps_file"
-      echo "Succesfully wrote lockfile to: $deps_file"
+      ${coreutils}/bin/echo "Succesfully wrote lockfile to: $deps_file"
     '';
   } // args.passthru or {};
 })