aboutsummaryrefslogtreecommitdiffstats
path: root/pkgs/populate/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/populate/default.nix')
-rw-r--r--pkgs/populate/default.nix13
1 files changed, 8 insertions, 5 deletions
diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix
index 75fbf61..7a52ca9 100644
--- a/pkgs/populate/default.nix
+++ b/pkgs/populate/default.nix
@@ -867,7 +867,14 @@ writers.writeDash "populate.${target.host}" ''
TMPDIR=$(${coreutils}/bin/mktemp -dt populate.XXXXXXXX)
readonly TMPDIR # Ensure the trap will delete the correct thing.
export TMPDIR # Share it with the jobs and the ssh wrapper.
- trap 'rm -R "$TMPDIR"' EXIT
+ # Stops the ssh master, if any source started one, also after failures,
+ # before its control socket goes away with $TMPDIR.
+ stop_ssh_master() {
+ if ${ssh' target} -q -O check ${quote target.host} 2>/dev/null; then
+ ${ssh' target} -q -O stop ${quote target.host}
+ fi
+ }
+ trap 'stop_ssh_master; rm -R "$TMPDIR"' EXIT
${check { inherit force target; }}
set -x
@@ -876,8 +883,4 @@ writers.writeDash "populate.${target.host}" ''
${flakes target source}
${optionalString prune (prune' target source)}
- # Stop the ssh master, if any source started one.
- if ${ssh' target} -q -O check ${quote target.host} 2>/dev/null; then
- ${ssh' target} -q -O stop ${quote target.host}
- fi
''