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 let
inherit (lib) inherit (lib)
mkDefault
mkIf mkIf
mkMerge mkMerge
mkOption mkOption
recursiveUpdate
types types
; ;
role = config.ataraxia.defaults.role; role = config.ataraxia.defaults.role;
in in
{ {
@ -25,9 +28,41 @@ in
}; };
}; };
config = mkMerge [ config =
(mkIf (role == "base") { let
ataraxia.defaults.nix.enable = true; 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)
];
} }