aboutsummaryrefslogtreecommitdiffstats
path: root/pkgs/populate/default.nix
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2019-11-29 13:20:21 +0100
committerGitHub <noreply@github.com>2019-11-29 13:20:21 +0100
commit8de797dae0fcd1821d79c486abeffc536c2de643 (patch)
treea31a177d0c333b4144de0e6650a72ebc2a5c7101 /pkgs/populate/default.nix
parent2e94e6eb24eec23075e5925f8de7468b3489d4fb (diff)
parentcd215753338c9e077516deabac11735dfb624f06 (diff)
Merge pull request #7 from nyantec/feature/sudo
ssh, rsync: support using sudo on remote
Diffstat (limited to 'pkgs/populate/default.nix')
-rw-r--r--pkgs/populate/default.nix10
1 files changed, 7 insertions, 3 deletions
diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix
index 1367a50..8a383b1 100644
--- a/pkgs/populate/default.nix
+++ b/pkgs/populate/default.nix
@@ -157,6 +157,7 @@ let
fi
${rsync}/bin/rsync \
${optionalString (config.useChecksum or false) /* sh */ "--checksum"} \
+ ${optionalString target.sudo /* sh */ "--rsync-path=\"sudo rsync\""} \
-e ${quote (ssh' target)} \
-vFrlptD \
--delete-excluded \
@@ -172,9 +173,12 @@ let
shell' = target: script:
if isLocalTarget target
then script
- else /* sh */ ''
- ${ssh' target} ${quote target.host} ${quote script}
- '';
+ else
+ if target.sudo then /* sh */ ''
+ ${ssh' target} ${quote target.host} ${quote "sudo bash -c ${quote script}"}
+ '' else ''
+ ${ssh' target} ${quote target.host} ${quote script}
+ '';
ssh' = target: concatMapStringsSep " " quote [
"${openssh}/bin/ssh"