1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00

traadfri: move out to module

This commit is contained in:
Kierán Meinhardt
2019-06-10 17:05:36 +02:00
parent fcabc8409f
commit ee58ab04af
4 changed files with 74 additions and 28 deletions

View File

@@ -49,6 +49,7 @@
<configs/theming.nix>
<configs/tmux.nix>
<configs/todo-txt.nix>
<configs/traadfri.nix>
<configs/unclutter.nix>
<configs/urxvt.nix>
<configs/vscode.nix>
@@ -112,17 +113,8 @@
odyssey = pkgs.callPackage <packages/odyssey.nix> {};
wttr = pkgs.callPackage <packages/wttr.nix> {};
git-quick-stats = pkgs.callPackage <packages/git-quick-stats.nix> {};
libcoap = pkgs.callPackage <packages/libcoap.nix> {};
writeDash = pkgs.writers.writeDash;
writeDashBin = pkgs.writers.writeDashBin;
traadfri =
let traadfri-package = pkgs.fetchFromGitHub {
owner = "kmein";
repo = "traadfri";
rev = "9a34ce96363e0709adf9ff842e3dfc6d469e5217";
sha256 = "1dj4xvzq51n2s3vnwh8f83lxn00x895wc92jp83x3pkcrjvkkzxn";
};
in pkgs.python3Packages.callPackage traadfri-package {};
dic = pkgs.callPackage <stockholm/krebs/5pkgs/simple/dic> {};
yt-next = pkgs.callPackage <stockholm/lass/5pkgs/yt-next> {};
@@ -409,9 +401,6 @@
n
wtf
depp
] ++ [
libcoap
traadfri
];
}
];

21
configs/traadfri.nix Normal file
View File

@@ -0,0 +1,21 @@
{ pkgs, lib, ... }:
{
imports = [ <modules/traadfri.nix> ];
niveum.traadfri = {
enable = true;
user = "kmein";
host = "192.168.178.28";
key = lib.strings.removeSuffix "\n" (builtins.readFile <secrets/traadfri.key>);
rooms = {
bedroom = 131074;
corridor = 131076;
kitchen = 131075;
living-room = 131073;
};
bulbs = {
bedread = 65546;
livingread = 65537;
};
};
}

46
modules/traadfri.nix Normal file
View File

@@ -0,0 +1,46 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.niveum.traadfri;
traadfri =
let traadfri-package = pkgs.fetchFromGitHub {
owner = "kmein";
repo = "traadfri";
rev = "9a34ce96363e0709adf9ff842e3dfc6d469e5217";
sha256 = "1dj4xvzq51n2s3vnwh8f83lxn00x895wc92jp83x3pkcrjvkkzxn";
};
in pkgs.python3Packages.callPackage traadfri-package {
libcoap = pkgs.callPackage <packages/libcoap.nix> {};
};
in
{
options.niveum.traadfri = {
enable = mkEnableOption "Trådfri CLI";
user = mkOption { type = types.str; };
host = mkOption { type = types.str; };
key = mkOption { type = types.str; };
rooms = mkOption { type = types.attrsOf types.int; default = {}; };
bulbs = mkOption { type = types.attrsOf types.int; default = {}; };
};
config = mkIf cfg.enable {
environment.shellAliases =
lib.attrsets.mapAttrs'
(name: value:
lib.nameValuePair "traadfri-${name}" "traadfri bulb ${toString value}")
cfg.bulbs
// lib.attrsets.mapAttrs'
(name: value:
lib.nameValuePair "traadfri-${name}" "traadfri group ${toString value}")
cfg.rooms;
environment.systemPackages = [
(pkgs.writeShellScriptBin "traadfri" ''
TRAADFRI_USER="${cfg.user}" \
TRAADFRI_KEY="${cfg.key}" \
TRAADFRI_HUB="${cfg.host}" \
${traadfri}/bin/traadfri $@
'')
];
};
}

View File

@@ -13,26 +13,16 @@ in {
<configs/nixpkgs-unstable.nix>
<configs/save-space.nix>
<configs/tmux.nix>
<configs/traadfri.nix>
<modules/retiolum.nix>
<modules/telegram-bot.nix>
{
nixpkgs.config.packageOverrides = pkgs: {
libcoap = pkgs.callPackage <packages/libcoap.nix> {};
traadfri =
let traadfri-package = pkgs.fetchFromGitHub {
owner = "kmein";
repo = "traadfri";
rev = "9a34ce96363e0709adf9ff842e3dfc6d469e5217";
sha256 = "1dj4xvzq51n2s3vnwh8f83lxn00x895wc92jp83x3pkcrjvkkzxn";
};
in pkgs.python3Packages.callPackage traadfri-package {};
};
environment.systemPackages = [ pkgs.wtf ];
environment.systemPackages = [ pkgs.traadfri ];
environment.variables = {
TRAADFRI_USER = "kmein";
TRAADFRI_HUB = "192.168.178.28";
TRAADFRI_KEY = builtins.readFile <secrets/traadfri.key>;
systemd.services.wtf = {
wantedBy = [ "multi-user.target" ];
script = "${pkgs.tmux}/bin/tmux new-session -d '${pkgs.wtf}/bin/wtf --config=${wtf-config}'";
serviceConfig.Type = "oneshot";
};
}
];