Fix type of various sessionVariables options

Unfortunately, using `attrsOf` is not possible since it results in too
eager evaluation. In particular, the

    home.sessionVariables = {
      FOO = "Hello";
      BAR = "${config.home.sessionVariables.FOO} World!";
    };

example will cause an infinite recursion.

This commit restores the option type of

- `home.sessionVariables`,
- `pam.sessionVariables`,
- `programs.bash.sessionVariables`, and
- `programs.zsh.sessionVariables`

to `attrs`. It also adds test cases for the above options to avoid
regressions.

Fixes #659
This commit is contained in:
Robert Helgesson
2019-04-27 00:21:18 +02:00
parent c5f230e682
commit b6e613c771
16 changed files with 133 additions and 13 deletions

View File

@@ -14,7 +14,7 @@ in
options = {
pam.sessionVariables = mkOption {
default = {};
type = with types; attrsOf (either int str);
type = types.attrs;
example = { EDITOR = "vim"; };
description = ''
Environment variables that will be set for the PAM session.