ssh: add extraConfig option for non-standard options

This commit is contained in:
Nadrieril 2018-01-10 15:40:07 +00:00 committed by Robert Helgesson
parent c9294e30d9
commit d6ab6ee370
No known key found for this signature in database
GPG key ID: C3DB11069E65DC86

View file

@ -95,6 +95,12 @@ let
default = null;
description = "The command to use to connect to the server.";
};
extraOptions = mkOption {
type = types.attrsOf types.str;
default = {};
description = "Extra configuration options for the host.";
};
};
config.host = mkDefault name;
@ -113,6 +119,7 @@ let
" ServerAliveInterval ${toString cf.serverAliveInterval}"
++ optional (!cf.checkHostIP) " CheckHostIP no"
++ optional (cf.proxyCommand != null) " ProxyCommand ${cf.proxyCommand}"
++ mapAttrsToList (n: v: " ${n} ${v}") cf.extraOptions
);
in
@ -157,6 +164,14 @@ in
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Extra configuration.
'';
};
matchBlocks = mkOption {
type = types.loaOf matchBlockModule;
default = [];
@ -190,6 +205,8 @@ in
ControlPath ${cfg.controlPath}
ControlPersist ${cfg.controlPersist}
${cfg.extraConfig}
${concatStringsSep "\n\n" (
map matchBlockStr (
builtins.attrValues cfg.matchBlocks))}