{ pkgs, ... }: with import ; 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 ) + "/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 ''; }; }; }