pam: add option pam.sessionVariables

This commit is contained in:
Robert Helgesson 2018-01-04 16:11:23 +01:00
parent 7631921366
commit d7755de116
No known key found for this signature in database
GPG key ID: C3DB11069E65DC86

View file

@ -6,17 +6,35 @@ let
homeCfg = config.home;
vars =
optionalAttrs (homeCfg.sessionVariableSetter == "pam") homeCfg.sessionVariables
// config.pam.sessionVariables;
in
{
meta.maintainers = [ maintainers.rycee ];
options = {};
options = {
pam.sessionVariables = mkOption {
default = {};
type = types.attrs;
example = { EDITOR = "vim"; };
description = ''
Environment variables that will be set for the PAM session.
The variable values must be as described in
<citerefentry>
<refentrytitle>pam_env.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>.
'';
};
};
config = mkIf (homeCfg.sessionVariableSetter == "pam") {
config = mkIf (vars != {}) {
home.file.".pam_environment".text =
concatStringsSep "\n" (
mapAttrsToList (n: v: "${n} OVERRIDE=${v}") homeCfg.sessionVariables
mapAttrsToList (n: v: "${n} OVERRIDE=${toString v}") vars
) + "\n";
};
}