33 lines
835 B
Nix
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));
|
|
}
|