Add helper functions for multi-user toggle support
Introduced a new file `lib.nix` containing helper functions to streamline user package management and attributes for multi-user configurations. Updated various modules to utilize these functions, enhancing code maintainability and readability.
This commit is contained in:
@@ -213,6 +213,22 @@ in
|
||||
windows_vm = ../secrets/ssh/ed25519_windows_vm.pub;
|
||||
};
|
||||
getSshKeys = keyNames: keyNames |> map (name: inputs.self.lib.sshKeys.${name});
|
||||
normalizeUsers = users:
|
||||
if builtins.isString users then [ users ] else users;
|
||||
mkUserPackages = lib: users: packages:
|
||||
lib.mkMerge (map (user: {
|
||||
${user}.packages = packages;
|
||||
}) (inputs.self.lib.normalizeUsers users));
|
||||
mkUserAttrs = lib: users: attrs:
|
||||
lib.mkMerge (map (user: {
|
||||
${user} = attrs;
|
||||
}) (inputs.self.lib.normalizeUsers users));
|
||||
mkHomeManagerUsers = lib: users: fn:
|
||||
lib.mkMerge (map (user: {
|
||||
${user} = fn user;
|
||||
}) (inputs.self.lib.normalizeUsers users));
|
||||
getFirstUser = users:
|
||||
if builtins.isString users then users else (builtins.head users);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user