at 23.11-pre 872 B view raw
1{ config, lib, pkgs, ... }: 2 3with lib; 4 5let 6 cfg = config.programs.k40-whisperer; 7 pkg = cfg.package.override { 8 udevGroup = cfg.group; 9 }; 10in 11{ 12 options.programs.k40-whisperer = { 13 enable = mkEnableOption (lib.mdDoc "K40-Whisperer"); 14 15 group = mkOption { 16 type = types.str; 17 description = lib.mdDoc '' 18 Group assigned to the device when connected. 19 ''; 20 default = "k40"; 21 }; 22 23 package = mkOption { 24 type = types.package; 25 default = pkgs.k40-whisperer; 26 defaultText = literalExpression "pkgs.k40-whisperer"; 27 example = literalExpression "pkgs.k40-whisperer"; 28 description = lib.mdDoc '' 29 K40 Whisperer package to use. 30 ''; 31 }; 32 }; 33 34 config = mkIf cfg.enable { 35 users.groups.${cfg.group} = {}; 36 37 environment.systemPackages = [ pkg ]; 38 services.udev.packages = [ pkg ]; 39 }; 40}