feat: module for role system
This commit is contained in:
parent
03df1ae699
commit
05db810079
@ -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)
|
||||
];
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user