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}