Add importable clan.modules and clan.template interfaces without implementation

This commit is contained in:
Qubasa
2025-01-27 17:35:42 +07:00
parent 1ba8090188
commit 6e47f1ee96
6 changed files with 134 additions and 1 deletions

View File

@@ -0,0 +1,27 @@
{
lib,
name,
...
}:
let
types = lib.types;
in
{
# clan.templates.clan.<template-name>
options = {
path = lib.mkOption {
type = types.path;
description = ''
Holds the path to the clan template.
'';
};
name = lib.mkOption {
type = types.str;
default = name;
description = ''
The name of the template.
'';
};
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
name,
...
}:
let
types = lib.types;
in
{
# clan.templates.disko.<template-name>
options = {
path = lib.mkOption {
type = types.path;
description = ''
Holds the path to the clan template.
'';
};
name = lib.mkOption {
type = types.str;
default = name;
description = ''
The name of the template.
'';
};
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
...
}:
let
types = lib.types;
in
{
options = {
# clan.templates.disko
disko = lib.mkOption {
type = types.attrsOf (types.submodule { imports = [ ./disko/interface.nix ]; });
default = { };
description = ''
Holds different disko templates.
'';
};
# clan.templates.clan
clan = lib.mkOption {
type = types.attrsOf (types.submodule { imports = [ ./clan/interface.nix ]; });
default = { };
description = ''
Holds the different clan templates.
'';
};
};
}