mirror of
https://cgit.krebsco.de/krops
synced 2024-11-22 19:19:46 +01:00
support default target attrs for attrSets
This commit is contained in:
parent
2cafddd78d
commit
8a8b2cf861
1 changed files with 12 additions and 7 deletions
|
@ -43,17 +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;
|
||||
extraOptions = [];
|
||||
} else s;
|
||||
} // (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]";
|
||||
|
|
Loading…
Reference in a new issue