50 lines
1.4 KiB
Nix
50 lines
1.4 KiB
Nix
{ pkgs, ... }:
|
|
with import <stockholm/lib>;
|
|
let
|
|
shack-announce = pkgs.callPackage (builtins.fetchTarball {
|
|
url = "https://github.com/makefu/events-publisher/archive/c5218195e6afdc646cb7682d8f355a7ec2b90716.tar.gz";
|
|
sha256 = "0xk74q7gah3l5zy3bkvih3k9fr1hclvf71rm3ixcmslhicl7khav";
|
|
}) {} ;
|
|
home = "/var/lib/shackannounce";
|
|
user = "shackannounce";
|
|
creds = (toString <secrets>) + "/shack-announce.json";
|
|
LOL = "DEBUG";
|
|
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 ${LOL} \
|
|
--creds creds.json \
|
|
--state announce.state \
|
|
--clean --init
|
|
fi
|
|
echo "Running announce"
|
|
announce-daemon \
|
|
--lol ${LOL} \
|
|
--creds creds.json \
|
|
--state announce.state
|
|
'';
|
|
};
|
|
};
|
|
}
|