From 4b40579b2d3758e5940cf33602001bfe1d44f230 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Mon, 26 Sep 2022 12:28:58 -0300 Subject: [PATCH] build-dotnet-module: clean up tmp file handling Having: rm -rf "$src" "$HOME" Was slightly terrifying IMO, especially where the trap was installed before HOME was set. --- .../dotnet/build-dotnet-module/default.nix | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix index b65aecd7e05c..54d03bc242b5 100644 --- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix +++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix @@ -188,14 +188,17 @@ stdenvNoCC.mkDerivation (args // { esac done + export tmp=$(mktemp -td "${pname}-tmp-XXXXXX") + HOME=$tmp/home + exitTrap() { test -n "''${ranTrap-}" && return ranTrap=1 if test -n "''${keepSources-}"; then - echo -e "Path to the source: $src\nPath to the fake home: $HOME" + echo -e "Path to the source: $tmp/src\nPath to the fake home: $tmp/home" else - rm -rf "$src" "$HOME" + rm -rf "$tmp" fi # Since mktemp is used this will be empty if the script didnt succesfully complete @@ -211,7 +214,7 @@ stdenvNoCC.mkDerivation (args // { dotnet restore ''${project-} \ -p:ContinuousIntegrationBuild=true \ -p:Deterministic=true \ - --packages "$HOME/nuget_pkgs" \ + --packages "$tmp/nuget_pkgs" \ --runtime "$rid" \ ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \ ${lib.optionalString (flags != []) (toString flags)} @@ -220,15 +223,14 @@ stdenvNoCC.mkDerivation (args // { declare -a projectFiles=( ${toString (lib.toList projectFile)} ) declare -a testProjectFiles=( ${toString (lib.toList testProjectFile)} ) - export HOME=$(mktemp -td "${pname}-home-XXXXXX") export DOTNET_NOLOGO=1 export DOTNET_CLI_TELEMETRY_OPTOUT=1 - depsFile="$(realpath "''${1:-$(mktemp -t "${pname}-deps-XXXXXX.nix")}")" - mkdir -p "$HOME/nuget_pkgs" + depsFile=$(realpath "''${1:-$(mktemp -t "${pname}-deps-XXXXXX.nix")}") + mkdir -p "$tmp/nuget_pkgs" storeSrc="${srcOnly args}" - src="$(mktemp -td "${pname}-src-XXXXXX")" + src=$tmp/src cp -rT "$storeSrc" "$src" chmod -R +w "$src" @@ -247,7 +249,7 @@ stdenvNoCC.mkDerivation (args // { echo "Writing lockfile..." echo -e "# This file was automatically generated by passthru.fetch-deps.\n# Please dont edit it manually, your changes might get overwritten!\n" > "$depsFile" - nuget-to-nix "$HOME/nuget_pkgs" "${exclusions}" >> "$depsFile" + nuget-to-nix "$tmp/nuget_pkgs" "${exclusions}" >> "$depsFile" echo "Succesfully wrote lockfile to $depsFile" ''; } // args.passthru or { };