chore(users): change merge strategy to lib.recursiveUpdate

This commit is contained in:
Sk7Str1p3 2026-05-24 16:47:58 +03:00
parent d3b48b8ef1
commit f57b5c4660
No known key found for this signature in database
GPG key ID: 4DD995933D06D43B

View file

@ -35,25 +35,26 @@
inputs,
...
}:
{
lib.foldl' (acc: obj: lib.recursiveUpdate acc obj) { } (
lib.lists.flatten [
# Import required modules
{
imports = [
inputs.home-manager.nixosModules.default
];
}
# Configure users' passwords as sops secret.
sops.secrets = lib.mkMerge (
map (user: {
"${user}/userPassword" = {
(map (user: {
sops.secrets."${user}/userPassword" = {
sopsFile = ./${user}/password.yaml;
neededForUsers = true;
};
}) cfg.usersList
);
}) cfg.usersList)
# Configure users
users.users = lib.mkMerge (
map (user: {
${user} =
(map (user: {
users.users.${user} =
let
cfg = builtins.fromJSON (builtins.readFile ./${user}/about.json);
in
@ -64,16 +65,16 @@
shell = pkgs."${cfg.shell}";
extraGroups = cfg.extraGroups or [ ];
};
}) cfg.usersList
);
}) cfg.usersList)
# Configurure home-manager
{
home-manager = {
backupFileExtension = "backup-${toString inputs.self.lastModified}";
users = lib.mkMerge (
map (user: {
${user} = {
};
}
(map (user: {
home-manager.users.${user} = {
imports = [
./${user}/modules
@ -89,14 +90,14 @@
};
home.stateVersion = config.system.stateVersion;
};
}) cfg.usersList
);
};
}) cfg.usersList)
# Configure DM and users' default sessions
{
services.displayManager.gdm.enable = true;
systemd.tmpfiles.settings."20-gdm-default-session" = lib.mkMerge (
map (user: {
}
(map (user: {
systemd.tmpfiles.settings."20-gdm-default-session" = {
"/run/tmpfiles/var/lib/AccountsService/users/${user}".f = {
argument = "${lib.generators.toINI { } {
User = {
@ -118,11 +119,9 @@
"/var/lib/AccountsService/users/${user}"."L+" = {
argument = "/run/tmpfiles/var/lib/AccountsService/users/${user}";
};
}) cfg.usersList
);
}
// (lib.foldl (acc: elem: acc // elem) { } (
map (
};
}) cfg.usersList)
(map (
user:
let
__session = lib.splitString ":" (builtins.fromJSON (builtins.readFile ./${user}/about.json))
@ -139,5 +138,6 @@
{ services.desktopManager.${session}.enable = true; }
else
{ }
) cfg.usersList
))
) cfg.usersList)
]
)