nix/option/Package.nix

32 lines
882 B
Nix

{ lib, config, ... }:
let
cfg = config.module.package;
purpose = config.module.purpose;
in
{
options.module.package = {
all = lib.mkEnableOption "All apps.";
core = lib.mkEnableOption "Core apps." // {
default = true;
};
common = lib.mkEnableOption "Common Apps." // {
default = cfg.all || (with purpose; desktop || laptop);
};
creative = lib.mkEnableOption "Creative Apps." // {
default = cfg.all || purpose.creative;
};
desktop = lib.mkEnableOption "Desktop Apps." // {
default = cfg.all || (with purpose; desktop || laptop);
};
dev = lib.mkEnableOption "Dev Apps." // {
default = cfg.all || purpose.work;
};
gaming = lib.mkEnableOption "Gaming Apps." // {
default = cfg.all || purpose.gaming;
};
extra = lib.mkEnableOption "Extra Apps." // {
default = cfg.all;
};
};
}