1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 18:21:07 +01:00
Files
niveum/modules/traadfri.nix

40 lines
1.2 KiB
Nix
Raw Normal View History

2019-06-10 17:05:36 +02:00
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.niveum.traadfri;
2021-12-31 16:57:45 +01:00
traadfri = pkgs.callPackage <traadfri> {
2020-06-10 17:37:25 +02:00
libcoap = pkgs.callPackage <niveum/packages/libcoap.nix> { tls = true; };
};
in {
2019-06-10 17:05:36 +02:00
options.niveum.traadfri = {
enable = mkEnableOption "Trådfri CLI";
user = mkOption { type = types.str; };
host = mkOption { type = types.str; };
key = mkOption { type = types.str; };
2020-06-10 17:37:25 +02:00
rooms = mkOption {
type = types.attrsOf types.int;
default = { };
};
bulbs = mkOption {
type = types.attrsOf types.int;
default = { };
};
2019-06-10 17:05:36 +02:00
};
config = mkIf cfg.enable {
environment.systemPackages = [
2019-07-03 22:12:40 +02:00
(pkgs.writers.writeDashBin "traadfri" ''
2019-06-10 17:05:36 +02:00
TRAADFRI_USER="${cfg.user}" \
TRAADFRI_KEY="${cfg.key}" \
TRAADFRI_HUB="${cfg.host}" \
${traadfri}/bin/traadfri $@
'')
2022-01-31 09:33:04 +01:00
] ++ lib.mapAttrsToList (name: value: pkgs.writers.writeDashBin "traadfri-${name}" ''
2022-01-31 19:46:59 +01:00
exec traadfri --target Room ${toString value} "$@"
2022-01-31 09:33:04 +01:00
'') cfg.rooms
++ lib.mapAttrsToList (name: value: pkgs.writers.writeDashBin "traadfri-${name}" ''
2022-01-31 19:46:59 +01:00
exec traadfri --target Bulb ${toString value} "$@"
2022-01-31 09:33:04 +01:00
'') cfg.bulbs;
2019-06-10 17:05:36 +02:00
};
}