39 lines
		
	
	
		
			857 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			857 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
|   | { config, lib, pkgs, ... }: | ||
|  | 
 | ||
|  | with lib; | ||
|  | 
 | ||
|  | let | ||
|  |   cfg = config.programs.dmrconfig; | ||
|  | 
 | ||
|  | in { | ||
|  |   meta.maintainers = [ maintainers.etu ]; | ||
|  | 
 | ||
|  |   ###### interface | ||
|  |   options = { | ||
|  |     programs.dmrconfig = { | ||
|  |       enable = mkOption { | ||
|  |         default = false; | ||
|  |         type = types.bool; | ||
|  |         description = ''
 | ||
|  |           Whether to configure system to enable use of dmrconfig. This | ||
|  |           enables the required udev rules and installs the program. | ||
|  |         '';
 | ||
|  |         relatedPackages = [ "dmrconfig" ]; | ||
|  |       }; | ||
|  | 
 | ||
|  |       package = mkOption { | ||
|  |         default = pkgs.dmrconfig; | ||
|  |         type = types.package; | ||
|  |         defaultText = "pkgs.dmrconfig"; | ||
|  |         description = "dmrconfig derivation to use"; | ||
|  |       }; | ||
|  |     }; | ||
|  |   }; | ||
|  | 
 | ||
|  |   ###### implementation | ||
|  |   config = mkIf cfg.enable { | ||
|  |     environment.systemPackages = [ cfg.package ]; | ||
|  |     services.udev.packages = [ cfg.package ]; | ||
|  |   }; | ||
|  | } |