nix-config/modules/top/inventory/users.nix

70 lines
1.9 KiB
Nix

{ lib, ... }:
{
options.dendritic.users = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule (
{ name, ... }:
{
options = {
name = lib.mkOption {
type = lib.types.str;
default = name;
};
username = lib.mkOption {
type = lib.types.str;
default = name;
};
nixosModules = lib.mkOption {
type = lib.types.listOf lib.types.deferredModule;
default = [ ];
};
homeModules = lib.mkOption {
type = lib.types.listOf lib.types.deferredModule;
default = [ ];
};
homes = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule (
{ name, ... }:
{
options = {
host = lib.mkOption {
type = lib.types.str;
default = name;
};
system = lib.mkOption {
type = lib.types.str;
};
stateVersion = lib.mkOption {
type = lib.types.str;
default = "25.05";
};
roles = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
};
extraModules = lib.mkOption {
type = lib.types.listOf lib.types.deferredModule;
default = [ ];
};
};
}
)
);
default = { };
};
};
}
)
);
default = { };
};
}