feat: module for role system

This commit is contained in:
Dmitriy Kholkin 2025-03-10 18:29:45 +03:00
parent 03df1ae699
commit 05db810079
Signed by: AtaraxiaDev
GPG Key ID: FD266B810DF48DF2

View File

@ -5,11 +5,14 @@
}:
let
inherit (lib)
mkDefault
mkIf
mkMerge
mkOption
recursiveUpdate
types
;
role = config.ataraxia.defaults.role;
in
{
@ -25,9 +28,41 @@ in
};
};
config = mkMerge [
(mkIf (role == "base") {
ataraxia.defaults.nix.enable = true;
})
];
config =
let
baseRole = {
ataraxia.defaults.lix.enable = mkDefault true;
ataraxia.defaults.nix.enable = mkDefault true;
persist.enable = mkDefault true;
boot.initrd.systemd.enable = mkDefault true;
services.userborn.enable = mkDefault true;
system.rebuild.enableNg = mkDefault true;
system.switch.enableNg = mkDefault true;
system.etc.overlay.enable = mkDefault true;
system.etc.overlay.mutable = mkDefault true;
zramSwap = {
enable = true;
algorithm = "zstd";
memoryPercent = 100;
};
};
serverRole = recursiveUpdate baseRole {
time.timeZone = "Etc/UTC";
};
desktopRole = recursiveUpdate baseRole {
location = {
provider = "manual";
latitude = 48;
longitude = 44;
};
};
in
mkMerge [
(mkIf (role == "base") baseRole)
(mkIf (role == "server") serverRole)
(mkIf (role == "desktop") desktopRole)
];
}