{ pkgs, ... }: with import ; let shack-announce = pkgs.callPackage (builtins.fetchTarball { url = "https://github.com/makefu/events-publisher/archive/5e7b083c63f25182a02c1fddb3d32cb9534fbc50.tar.gz"; sha256 = "1zzlhyj8fr6y3a3b6qlyrm474xxxs1ydqjpkd2jva3g1lnzlmvkp"; }) {} ; home = "/var/lib/shackannounce"; user = "shackannounce"; creds = (toString ) + "/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 ''; }; }; }