63 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { lib, ... }:
 | |
| with lib;
 | |
| rec {
 | |
|   ## Create a NixOS module option.
 | |
|   ##
 | |
|   ## ```nix
 | |
|   ## lib.mkOpt nixpkgs.lib.types.str "My default" "Description of my option."
 | |
|   ## ```
 | |
|   ##
 | |
|   #@ Type -> Any -> String
 | |
|   mkOpt =
 | |
|     type: default: description:
 | |
|     mkOption { inherit type default description; };
 | |
| 
 | |
|   ## Create a NixOS module option without a description.
 | |
|   ##
 | |
|   ## ```nix
 | |
|   ## lib.mkOpt' nixpkgs.lib.types.str "My default"
 | |
|   ## ```
 | |
|   ##
 | |
|   #@ Type -> Any -> String
 | |
|   mkOpt' = type: default: mkOpt type default null;
 | |
| 
 | |
|   ## Create a boolean NixOS module option.
 | |
|   ##
 | |
|   ## ```nix
 | |
|   ## lib.mkBoolOpt true "Description of my option."
 | |
|   ## ```
 | |
|   ##
 | |
|   #@ Type -> Any -> String
 | |
|   mkBoolOpt = mkOpt types.bool;
 | |
| 
 | |
|   ## Create a boolean NixOS module option without a description.
 | |
|   ##
 | |
|   ## ```nix
 | |
|   ## lib.mkBoolOpt true
 | |
|   ## ```
 | |
|   ##
 | |
|   #@ Type -> Any -> String
 | |
|   mkBoolOpt' = mkOpt' types.bool;
 | |
| 
 | |
|   enabled = {
 | |
|     ## Quickly enable an option.
 | |
|     ##
 | |
|     ## ```nix
 | |
|     ## services.nginx = enabled;
 | |
|     ## ```
 | |
|     ##
 | |
|     #@ true
 | |
|     enable = true;
 | |
|   };
 | |
| 
 | |
|   disabled = {
 | |
|     ## Quickly disable an option.
 | |
|     ##
 | |
|     ## ```nix
 | |
|     ## services.nginx = enabled;
 | |
|     ## ```
 | |
|     ##
 | |
|     #@ false
 | |
|     enable = false;
 | |
|   };
 | |
| }
 |