nixos-config/lib/default.nix
2024-11-05 13:51:12 +01:00

33 lines
835 B
Nix

{lib, ...}: let
inherit (lib) mkOption strings;
inherit (lib.attrsets) filterAttrs mapAttrsToList;
inherit (lib.types) bool;
in rec {
disabled = {enable = false;};
enabled = {enable = true;};
ifThenElse = cond: t: f:
if cond
then t
else f;
mkOpt = type: default: description:
mkOption {inherit type default description;};
mkOpt' = type: default: mkOpt type default null;
mkBoolOpt = mkOpt bool;
mkBoolOpt' = mkOpt' bool;
mkPxeMenu = args:
''
UI menu.c32
TIMEOUT 300
''
+ strings.concatStringsSep "\n" (mapAttrsToList
(
name: value: ''
LABEL ${name}
MENU LABEL ${value.content.label}
KERNEL ${value.content.kernel}
append ${value.content.append}
''
)
(filterAttrs (_: v: v.condition) args));
}