2018-08-08 19:11:41 +00:00
|
|
|
{ pkgs, ... }:
|
|
|
|
with import <stockholm/lib>;
|
|
|
|
let
|
|
|
|
shack-announce = pkgs.callPackage (builtins.fetchTarball {
|
2018-08-09 22:09:28 +00:00
|
|
|
url = "https://github.com/makefu/events-publisher/archive/5e7b083c63f25182a02c1fddb3d32cb9534fbc50.tar.gz";
|
|
|
|
sha256 = "1zzlhyj8fr6y3a3b6qlyrm474xxxs1ydqjpkd2jva3g1lnzlmvkp";
|
2018-08-08 19:11:41 +00:00
|
|
|
}) {} ;
|
|
|
|
home = "/var/lib/shackannounce";
|
|
|
|
user = "shackannounce";
|
|
|
|
creds = (toString <secrets>) + "/shack-announce.json";
|
|
|
|
in
|
|
|
|
{
|
|
|
|
users.users.${user}= {
|
|
|
|
uid = genid user;
|
|
|
|
inherit home;
|
|
|
|
createHome = true;
|
|
|
|
};
|
|
|
|
systemd.services.shack-announce = {
|
|
|
|
description = "Announce shack events";
|
|
|
|
startAt = "*:0/30";
|
|
|
|
path = [ shack-announce ];
|
|
|
|
serviceConfig = {
|
|
|
|
WorkingDirectory = home;
|
|
|
|
User = user;
|
|
|
|
PermissionsStartOnly = true;
|
|
|
|
ExecStartPre = pkgs.writeDash "shack-announce-pre" ''
|
|
|
|
set -eu
|
|
|
|
cp ${creds} creds.json
|
|
|
|
chown ${user} creds.json
|
|
|
|
'';
|
|
|
|
ExecStart = pkgs.writeDash "shack-announce" ''
|
|
|
|
if test ! -e announce.state; then
|
|
|
|
echo "initializing state"
|
|
|
|
announce-daemon \
|
|
|
|
--lol INFO \
|
|
|
|
--creds creds.json \
|
|
|
|
--state announce.state \
|
|
|
|
--clean --init
|
|
|
|
fi
|
|
|
|
echo "Running announce"
|
|
|
|
announce-daemon \
|
|
|
|
--lol INFO \
|
|
|
|
--creds creds.json \
|
|
|
|
--state announce.state
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|