mirror of
https://cgit.krebsco.de/krops
synced 2024-11-26 21:19:47 +01:00
ssh: support using ssh-configured user
Let ssh use the user configured in its configuration files when the target user is set to the empty string. Closes https://github.com/krebs/krops/issues/2
This commit is contained in:
parent
8de797dae0
commit
70fa39607f
3 changed files with 10 additions and 8 deletions
|
@ -44,7 +44,7 @@ let {
|
||||||
|
|
||||||
mkTarget = s: let
|
mkTarget = s: let
|
||||||
default = defVal: val: if val != null then val else defVal;
|
default = defVal: val: if val != null then val else defVal;
|
||||||
parse = lib.match "(([^@]+)@)?(([^:/]+))?(:([^/]+))?(/.*)?" s;
|
parse = lib.match "(([^@]*)@)?(([^:/]+))?(:([^/]+))?(/.*)?" s;
|
||||||
elemAt' = xs: i: if lib.length xs > i then lib.elemAt xs i else null;
|
elemAt' = xs: i: if lib.length xs > i then lib.elemAt xs i else null;
|
||||||
in if lib.isString s then {
|
in if lib.isString s then {
|
||||||
user = default (lib.getEnv "LOGNAME") (elemAt' parse 1);
|
user = default (lib.getEnv "LOGNAME") (elemAt' parse 1);
|
||||||
|
|
|
@ -20,9 +20,9 @@ in
|
||||||
remoteCommand = target: command:
|
remoteCommand = target: command:
|
||||||
exec "build.${target.host}" rec {
|
exec "build.${target.host}" rec {
|
||||||
filename = "${openssh}/bin/ssh";
|
filename = "${openssh}/bin/ssh";
|
||||||
argv = [
|
argv = lib.flatten [
|
||||||
filename
|
filename
|
||||||
"-l" target.user
|
(lib.optionals (target.user != "") ["-l" target.user])
|
||||||
"-p" target.port
|
"-p" target.port
|
||||||
"-t"
|
"-t"
|
||||||
target.host
|
target.host
|
||||||
|
|
|
@ -163,8 +163,10 @@ let
|
||||||
--delete-excluded \
|
--delete-excluded \
|
||||||
"$source_path" \
|
"$source_path" \
|
||||||
${quote (
|
${quote (
|
||||||
optionalString (!isLocalTarget target)
|
optionalString (!isLocalTarget target) (
|
||||||
"${target.user}@${target.host}:" +
|
(optionalString (target.user != "") "${target.user}@") +
|
||||||
|
"${target.host}:"
|
||||||
|
) +
|
||||||
target.path
|
target.path
|
||||||
)} \
|
)} \
|
||||||
>&2
|
>&2
|
||||||
|
@ -180,13 +182,13 @@ let
|
||||||
${ssh' target} ${quote target.host} ${quote script}
|
${ssh' target} ${quote target.host} ${quote script}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
ssh' = target: concatMapStringsSep " " quote [
|
ssh' = target: concatMapStringsSep " " quote (flatten [
|
||||||
"${openssh}/bin/ssh"
|
"${openssh}/bin/ssh"
|
||||||
"-l" target.user
|
(optionals (target.user != "") ["-l" target.user])
|
||||||
"-o" "ControlPersist=no"
|
"-o" "ControlPersist=no"
|
||||||
"-p" target.port
|
"-p" target.port
|
||||||
"-T"
|
"-T"
|
||||||
];
|
]);
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue