about summary refs log tree commit diff
path: root/nixos/modules/config/system-environment.nix
diff options
context:
space:
mode:
authorMichael Peyton Jones <me@michaelpj.com>2019-09-30 20:41:20 +0100
committerworldofpeace <worldofpeace@protonmail.ch>2019-10-01 21:18:54 -0400
commit9d61ddaf822798d0e02092e471060b5ba672f2ab (patch)
tree8157cca40f7e93f69338e05d39c29acf0508a8de /nixos/modules/config/system-environment.nix
parent5afde25a10185b56f348eb6112656ed9ef2d4bb0 (diff)
downloadnixlib-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.nix14
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"