diff options
author | Michael Peyton Jones <me@michaelpj.com> | 2019-09-30 20:41:20 +0100 |
---|---|---|
committer | worldofpeace <worldofpeace@protonmail.ch> | 2019-10-01 21:18:54 -0400 |
commit | 9d61ddaf822798d0e02092e471060b5ba672f2ab (patch) | |
tree | 8157cca40f7e93f69338e05d39c29acf0508a8de /nixos/modules/config/system-environment.nix | |
parent | 5afde25a10185b56f348eb6112656ed9ef2d4bb0 (diff) | |
download | nixlib-9d61ddaf822798d0e02092e471060b5ba672f2ab.tar nixlib-9d61ddaf822798d0e02092e471060b5ba672f2ab.tar.gz nixlib-9d61ddaf822798d0e02092e471060b5ba672f2ab.tar.bz2 nixlib-9d61ddaf822798d0e02092e471060b5ba672f2ab.tar.lz nixlib-9d61ddaf822798d0e02092e471060b5ba672f2ab.tar.xz nixlib-9d61ddaf822798d0e02092e471060b5ba672f2ab.tar.zst nixlib-9d61ddaf822798d0e02092e471060b5ba672f2ab.zip |
nixos/system-environment: replace env vars in values of variables too
We were only replacing them in the profiles. We also need to do this in the values of variables, including both the session-relative variables and the non-session-relative variables.
Diffstat (limited to 'nixos/modules/config/system-environment.nix')
-rw-r--r-- | nixos/modules/config/system-environment.nix | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/nixos/modules/config/system-environment.nix b/nixos/modules/config/system-environment.nix index 792d1dbb38f6..e934e79e7e8e 100644 --- a/nixos/modules/config/system-environment.nix +++ b/nixos/modules/config/system-environment.nix @@ -8,11 +8,6 @@ let cfg = config.environment; - pamProfiles = - map - (replaceStrings ["$HOME" "$USER"] ["@{HOME}" "@{PAM_USER}"]) - cfg.profiles; - in { @@ -75,13 +70,18 @@ in let suffixedVariables = flip mapAttrs cfg.profileRelativeSessionVariables (envVar: suffixes: - flip concatMap pamProfiles (profile: + flip concatMap cfg.profiles (profile: map (suffix: "${profile}${suffix}") suffixes ) ); + # We're trying to use the same syntax for PAM variables and env variables. + # That means we need to map the env variables that people might use to their + # equivalent PAM variable. + replaceEnvVars = replaceStrings ["$HOME" "$USER"] ["@{HOME}" "@{PAM_USER}"] + pamVariable = n: v: - ''${n} DEFAULT="${concatStringsSep ":" (toList v)}"''; + ''${n} DEFAULT="${concatStringsSep ":" (map replaceEnvVars (toList v))}"''; pamVariables = concatStringsSep "\n" |