summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/bureautomation/default.nix
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2018-12-04 13:37:56 +0100
committermakefu <github@syntax-fehler.de>2018-12-04 13:37:56 +0100
commit1859d6653a12e1bfda9465780610f63da8f5ce69 (patch)
tree29d90dca3ff45cf73bd1aa3aa0375f8b246293b3 /makefu/2configs/bureautomation/default.nix
parent42e64be38804bd97c65f009e26a3de3af03d07dc (diff)
ma mv {deployment,}/bureautomation
Diffstat (limited to 'makefu/2configs/bureautomation/default.nix')
-rw-r--r--makefu/2configs/bureautomation/default.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix
new file mode 100644
index 000000000..3897537ea
--- /dev/null
+++ b/makefu/2configs/bureautomation/default.nix
@@ -0,0 +1,41 @@
+{ pkgs, lib, ... }:
+
+with lib;
+let
+ port = 3001;
+ runit = pkgs.writeDash "runit" ''
+ set -xeuf
+ PATH=${pkgs.curl}/bin:${pkgs.coreutils}/bin
+ name=''${1?must provide name as first arg}
+ state=''${2?must provide state as second arg}
+ # val=''${3?must provide val as third arg}
+
+ # we ignore non-alerting events
+ test $state = alerting || exit 0
+
+ echo $name - $state
+ curl 'http://bauarbeiterlampe/ay?o=1'
+ sleep 5
+ curl 'http://bauarbeiterlampe/ay?o=1'
+ '';
+in {
+ services.logstash = {
+ package = pkgs.logstash5;
+ enable = true;
+ inputConfig = ''
+ http {
+ port => ${toString port}
+ host => "127.0.0.1"
+ }
+ '';
+ filterConfig = ''
+ '';
+ outputConfig = ''
+ stdout { codec => json }
+ exec { command => "${runit} '%{ruleName}' '%{state}'" }
+ '';
+ extraSettings = ''
+ path.plugins: [ "${pkgs.logstash-output-exec}" ]
+ '';
+ };
+}