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));
 | |
| }
 |