blob: 964e5ccbbe5ff43d76e7adf030293c5f20559ddc (
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
42
43
44
45
46
47
48
49
|
{ pkgs, ... }:
with import <stockholm/lib>;
let
shack-announce = pkgs.callPackage (builtins.fetchTarball {
url = "https://github.com/makefu/events-publisher/archive/419afdfe16ebf7f2360d2ba64b67ca88948832bd.tar.gz";
sha256 = "0rn1ykgjbd79zg03maa49kzi6hpzn4xzf4j93qgx5wax7h12qjx0";
}) {} ;
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
'';
};
};
}
|