at 24.11-pre 622 B view raw
1{ config, lib, pkgs, ... }: 2 3let 4 cfg = config.programs.k40-whisperer; 5 pkg = cfg.package.override { 6 udevGroup = cfg.group; 7 }; 8in 9{ 10 options.programs.k40-whisperer = { 11 enable = lib.mkEnableOption "K40-Whisperer"; 12 13 group = lib.mkOption { 14 type = lib.types.str; 15 description = '' 16 Group assigned to the device when connected. 17 ''; 18 default = "k40"; 19 }; 20 21 package = lib.mkPackageOption pkgs "k40-whisperer" { }; 22 }; 23 24 config = lib.mkIf cfg.enable { 25 users.groups.${cfg.group} = {}; 26 27 environment.systemPackages = [ pkg ]; 28 services.udev.packages = [ pkg ]; 29 }; 30}