diff options
author | tv <tv@krebsco.de> | 2019-11-29 13:20:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-29 13:20:21 +0100 |
commit | 8de797dae0fcd1821d79c486abeffc536c2de643 (patch) | |
tree | a31a177d0c333b4144de0e6650a72ebc2a5c7101 /pkgs/populate/default.nix | |
parent | 2e94e6eb24eec23075e5925f8de7468b3489d4fb (diff) | |
parent | cd215753338c9e077516deabac11735dfb624f06 (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.nix | 10 |
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" |