34 lines
682 B
Nix
34 lines
682 B
Nix
|
{
|
||
|
config,
|
||
|
lib,
|
||
|
...
|
||
|
}: {
|
||
|
options.users = let
|
||
|
inherit (lib) types;
|
||
|
in {
|
||
|
normalUsers = lib.mkOption {
|
||
|
type = types.listOf (types.passwdEntry types.str);
|
||
|
description = ''
|
||
|
List of normal users.
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
systemUsers = lib.mkOption {
|
||
|
type = types.listOf (types.passwdEntry types.str);
|
||
|
description = ''
|
||
|
List of system users.
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config.users = let
|
||
|
filterUsers = pred: (lib.pipe config.users.users [
|
||
|
(lib.filterAttrs (_: pred))
|
||
|
builtins.attrNames
|
||
|
]);
|
||
|
in {
|
||
|
normalUsers = filterUsers (user: user.isNormalUser);
|
||
|
systemUsers = filterUsers (user: user.isSystemUser);
|
||
|
};
|
||
|
}
|