1
0
Fork 0
mirror of https://cgit.krebsco.de/krops synced 2024-12-23 10:19:52 +01:00

Merge pull request #19 from erikarvstedt/improve-target-opts

Improve deploy target options
This commit is contained in:
tv 2020-04-19 01:06:20 +02:00 committed by GitHub
commit 55aa2c77ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 7 deletions

View file

@ -43,16 +43,22 @@ let {
lib.elem target.host [origin.host "localhost"];
mkTarget = s: let
default = defVal: val: if val != null then val else defVal;
parse = lib.match "(([^@]*)@)?(([^:/]+))?(:([^/]+))?(/.*)?" s;
elemAt' = xs: i: if lib.length xs > i then lib.elemAt xs i else null;
in if lib.isString s then {
user = default (lib.getEnv "LOGNAME") (elemAt' parse 1);
host = default (lib.maybeEnv "HOSTNAME" lib.getHostName) (elemAt' parse 3);
port = default "22" /* "ssh"? */ (elemAt' parse 5);
path = default "/var/src" /* no default? */ (elemAt' parse 6);
filterNull = lib.filterAttrs (n: v: v != null);
in {
user = lib.getEnv "LOGNAME";
host = lib.maybeEnv "HOSTNAME" lib.getHostName;
port = "22";
path = "/var/src";
sudo = false;
} else s;
extraOptions = [];
} // (if lib.isString s then filterNull {
user = elemAt' parse 1;
host = elemAt' parse 3;
port = elemAt' parse 5;
path = elemAt' parse 6;
} else s);
shell = let
isSafeChar = lib.testString "[-+./0-9:=A-Z_a-z]";

View file

@ -23,6 +23,7 @@ in
(lib.optionals (target.user != "") ["-l" target.user])
"-p" target.port
"-t"
target.extraOptions
target.host
(if target.sudo then "sudo ${command}" else command)])}
'';

View file

@ -194,6 +194,7 @@ let
"-o" "ControlPersist=no"
"-p" target.port
"-T"
target.extraOptions
]);
in