summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/deployment/led-fader.nix
blob: 4c17a1d50976f12082eee981304648c610e30a8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{ config, lib, pkgs, ... }:

with import <stockholm/lib>;
let
  mq = "192.168.8.11";

  pkg = pkgs.stdenv.mkDerivation {
    name = "ampel-master";
    src = pkgs.fetchgit {
      url = "http://cgit.euer.krebsco.de/ampel";
      rev = "07a6791de368e16cc0864d2676fd255eba522cee";
      sha256 = "1jxjapvkfglvgapy7gjbr1nra3ay418nvz70bvypcmv7wc8d4h8q";
    };
    buildInputs = [
      (pkgs.python35.withPackages (pythonPackages: with pythonPackages; [
        docopt
        paho-mqtt
      ]))
    ];
    installPhase = ''
      install -m755 -D fade.py  $out/bin/fade.py
      install -m755 -D ampel.py $out/bin/ampel
      install -m755 -D times.json $out/share/times.json
    '';
  };
in {
  systemd.services.led-fader  = {
    description = "Send led change to message queue";
    environment = {
      NIX_PATH = "/var/src";
    };
    after = [ "network-online.target"  ] ++ (lib.optional config.services.mosquitto.enable "mosquitto.service");
    wantedBy = [ "multi-user.target"  ];
    serviceConfig = {
      # User = "nobody"; # need a user with permissions to run nix-shell
      ExecStartPre = pkgs.writeDash "sleep.sh" "sleep 2";
      ExecStart = "${pkg}/bin/ampel 4 ${pkg}/share/times.json";
      PrivateTmp = true;
    };
  };
}