initial commit

This commit is contained in:
gwg313 2026-04-15 18:26:05 -04:00
commit ebc1be5217
Signed by: gwg313
GPG key ID: 60FF63B4826B7400
143 changed files with 7721 additions and 0 deletions

View file

@ -0,0 +1,12 @@
{ lib, ... }:
{
options.dendritic.current = {
hostName = lib.mkOption {
type = lib.types.str;
};
primaryUser = lib.mkOption {
type = lib.types.str;
};
};
}

View file

@ -0,0 +1,36 @@
{ lib, ... }:
{
options.dendritic.features = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule ({ name, ... }: {
options = {
name = lib.mkOption {
type = lib.types.str;
default = name;
};
features = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
};
nixosModules = lib.mkOption {
type = lib.types.listOf lib.types.deferredModule;
default = [ ];
};
homeModules = lib.mkOption {
type = lib.types.listOf lib.types.deferredModule;
default = [ ];
};
includeInEmbeddedHomeManager = lib.mkOption {
type = lib.types.bool;
default = true;
};
};
})
);
default = { };
};
}

View file

@ -0,0 +1,43 @@
{lib, ...}: {
options.dendritic.hosts = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule ({name, ...}: {
options = {
name = lib.mkOption {
type = lib.types.str;
default = name;
};
system = lib.mkOption {
type = lib.types.str;
};
type = lib.mkOption {
type = lib.types.enum ["laptop" "desktop" "server"];
};
roles = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
};
primaryUser = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
};
primaryUserExtraGroups = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = ["wheel" "networkmanager"];
};
nixosModules = lib.mkOption {
type = lib.types.listOf lib.types.deferredModule;
default = [];
};
};
})
);
default = {};
};
}

View file

@ -0,0 +1,63 @@
{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 = {};
};
}