puyak.r: announce doorstatus
This commit is contained in:
parent
7cf2e992f7
commit
e0c5b3f187
74
krebs/2configs/shack/doorstatus.sh
Executable file
74
krebs/2configs/shack/doorstatus.sh
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# needs in path:
|
||||||
|
# curl jq
|
||||||
|
# creates and manages $PWD/state
|
||||||
|
set -euf
|
||||||
|
|
||||||
|
send_reaktor(){
|
||||||
|
# usage: send_reaktor "text"
|
||||||
|
echo "send_reaktor: $1"
|
||||||
|
curl -fsS http://localhost:7777 \
|
||||||
|
-H content-type:application/json \
|
||||||
|
-d "$(jq -n \
|
||||||
|
--arg text "$1" '{
|
||||||
|
command:"PRIVMSG",
|
||||||
|
params:["#shackspace",$text]
|
||||||
|
}'
|
||||||
|
)"
|
||||||
|
}
|
||||||
|
|
||||||
|
open=$(shuf -n1 <<EOF
|
||||||
|
happy hacking, shack ist offen
|
||||||
|
Heureka, der shack ist offen
|
||||||
|
Die Türe ist offen, der shack will bespielt werden
|
||||||
|
Frohlocket, der shack ist offen
|
||||||
|
shack is love, shack is life, shack is offen
|
||||||
|
Bin da, wer noch? shack hat geöffnet!
|
||||||
|
shack hat geöffnet: Arbeiten Sie sicher, arbeiten Sie klug!
|
||||||
|
Bin ich schon drin? Ich bin schon drin.. das war ja einfach. Also im shack.
|
||||||
|
Uuuuund es setzt sich in Bewegung, wir öffnen den shack, los, los! Ja da guckt ihr, jetzt gehts looos!
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
close=$(shuf -n1 <<EOF
|
||||||
|
Hacking vorbei, shack ist zu!
|
||||||
|
Tja, shack ist zu
|
||||||
|
Shackie-closie
|
||||||
|
Der Sandmann kommt, alle shackies sind zu haus und die Tür ist zu
|
||||||
|
shack hat Stromsparmodus aktiviert
|
||||||
|
Tür ist zu, shackspace ist jetzt koronakonform
|
||||||
|
Oh nein, eine Tür, sie ist verschlossen! Also, die vom shack
|
||||||
|
Ihr kennt das ja: Abschalten. Der shack ist zu.
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
error=$(shuf -n1 <<EOF
|
||||||
|
Hase, api ist kaputt! Bitte reparieren
|
||||||
|
API liefert kein sinnvolles Ergebnis, keine Ahnung ob shack offen oder zu ist
|
||||||
|
shack api defekt :(
|
||||||
|
Hubel Hubel, jemand könnte mal die shack api reparieren
|
||||||
|
API sagt derp
|
||||||
|
Siehste das? API? Da soll ich jetzt nen Request drauf machen? Jetzt werd ich aber langsam n bisschen wild hier langsam!
|
||||||
|
Der API ist ein bisschen ein Otto geworden, ischwör der will mich flaxen
|
||||||
|
ich möchte den geschäftsführer sprechen, das API geht nicht mehr!
|
||||||
|
Herr makefu an Kasse 3 bitte, Kasse 3 bitte Herr makefu. Der API Computer ist mal wieder ausgefallen
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
state=$(curl https://api.shackspace.de/v1/space | jq .doorState.open)
|
||||||
|
prevstate=$(cat state ||:)
|
||||||
|
|
||||||
|
if test "$state" == "$(cat state)";then
|
||||||
|
#echo "current and last state is the same ($state), doing nothing"
|
||||||
|
:
|
||||||
|
else
|
||||||
|
echo "API state and last state differ ( '$state' != '$prevstate')"
|
||||||
|
if test "$state" == "true";then
|
||||||
|
send_reaktor "$open"
|
||||||
|
elif test "$state" == "false";then
|
||||||
|
send_reaktor "$close"
|
||||||
|
else
|
||||||
|
send_reaktor "$error"
|
||||||
|
fi
|
||||||
|
echo "updating state"
|
||||||
|
printf "%s" "$state" > state
|
||||||
|
fi
|
|
@ -16,4 +16,15 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
systemd.services.announce_doorstatus = {
|
||||||
|
startAt = "*:0/1";
|
||||||
|
path = with pkgs; [ curl jq ];
|
||||||
|
script = builtins.readFile ./doorstatus.sh;
|
||||||
|
serviceConfig = {
|
||||||
|
DynamicUser = true;
|
||||||
|
StateDirectory = "doorstatus";
|
||||||
|
WorkingDirectory = "/var/lib/doorstatus";
|
||||||
|
PrivateTmp = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue