From 268608f1ebb71e3fb89fbd42b29d5a3340962fcb Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 13 Nov 2026 04:34:38 +0000 Subject: populate prune: name the target like populating does Pruning prints the path of each entry it removes, without the target's user and host, while rsync, when populating, names the target as user@host:path. Pruning names it the same way, so the lines say which machine they're about. --- pkgs/populate/default.nix | 20 ++++++++++++-------- tests/scenarios.nix | 6 +++++- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix index e8d3bdc..d6b3a37 100644 --- a/pkgs/populate/default.nix +++ b/pkgs/populate/default.nix @@ -77,6 +77,15 @@ let fi ''; + # The path on the target, as rsync names it: prefixed by the user and host + # if the target isn't local. + targetName = target: path: + optionalString (!isLocalTarget target) ( + (optionalString (target.user != "") "${target.user}@") + + "${target.host}:" + ) + + path; + # Shell code that removes the entries of the directory dir, a shell word, # that aren't named names. find, unlike a loop reading names, copes with # every name, e.g. ones that end in blanks or contain newlines. Entries of @@ -698,7 +707,8 @@ let ${removeOthers { dir = "."; names = attrNames sources ++ [ ".populate" ]; - log = quote target.path; + # Like populating names the target. + log = quote (targetName target target.path); }} roots=.populate/flake-inputs if test -d "$roots"; then @@ -1388,13 +1398,7 @@ let -rlptD \ ${optionalString config.deleteExcluded /* sh */ "--delete-excluded"} \ "$source_path" \ - ${quote ( - optionalString (!isLocalTarget target) ( - (optionalString (target.user != "") "${target.user}@") + - "${target.host}:" - ) + - target.path - )} \ + ${quote (targetName target target.path)} \ >&2 ''; diff --git a/tests/scenarios.nix b/tests/scenarios.nix index e23d14e..bd3be6a 100644 --- a/tests/scenarios.nix +++ b/tests/scenarios.nix @@ -1050,7 +1050,11 @@ assert !(krops.isLocalTarget (targets.remote "/")); sources = { inherit (sources) a; b.symlink = "a"; }; prune = true; output = map - (name: "pruning /var/krops/prune-${targetKind}/${name}") + (name: "pruning ${{ + local = ""; + remote = "root@${remoteHost}:"; + sudo = "deploy@${remoteHost}:"; + }.${targetKind}}/var/krops/prune-${targetKind}/${name}") [ "c" "d" "other" ]; check = '' test -e "$T"/a/flake.nix || fail "a removed" -- cgit v1.3.1