1{ config, lib, pkgs, ... }:
2with lib;
3let
4 cfg = config.services.usbrelayd;
5in
6{
7 options.services.usbrelayd = with types; {
8 enable = mkEnableOption (lib.mdDoc "USB Relay MQTT daemon");
9
10 broker = mkOption {
11 type = str;
12 description = lib.mdDoc "Hostname or IP address of your MQTT Broker.";
13 default = "127.0.0.1";
14 example = [
15 "mqtt"
16 "192.168.1.1"
17 ];
18 };
19
20 clientName = mkOption {
21 type = str;
22 description = lib.mdDoc "Name, your client connects as.";
23 default = "MyUSBRelay";
24 };
25 };
26
27 config = mkIf cfg.enable {
28
29 environment.etc."usbrelayd.conf".text = ''
30 [MQTT]
31 BROKER = ${cfg.broker}
32 CLIENTNAME = ${cfg.clientName}
33 '';
34
35 services.udev.packages = [ pkgs.usbrelayd ];
36 systemd.packages = [ pkgs.usbrelayd ];
37 users.groups.usbrelay = { };
38 };
39
40 meta = {
41 maintainers = with lib.maintainers; [ wentasah ];
42 };
43}