summaryrefslogtreecommitdiff
path: root/lib/user.nix
blob: 75244eb564254c9ea8e2e7b70bfc5ad161a101f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{mapFilterDirs}: rec {
  mkHMUser = {
    username,
    pkgs,
    stateVersion ? "22.11",
    modules ? [],
    inputs,
  }:
    inputs.home-manager.lib.homeManagerConfiguration {
      inherit pkgs;
      modules =
        [
          ../users/${username}/home.nix
          {
            home = {
              inherit username stateVersion;
              homeDirectory = "/home/${username}";
            };

            programs.home-manager.enable = true;
          }
        ]
        ++ modules;
    };

  mapHMUsers = inputs: system: let
    users = import ../users inputs system;
  in
    mapFilterDirs ../users (n: v: v == "directory" && n != "secrets") (username: _:
      mkHMUser {
        inherit username inputs;
        inherit (users.${username}) pkgs stateVersion;
        modules =
          if builtins.hasAttr "modules" users.${username}
          then users.${username}.modules
          else [];
      });
}