{ config, pkgs, ... }: let streams = { coloradio = "http://streaming.fueralle.org/coloradio_160.mp3"; }; in { systemd.services = builtins.foldl' (result: stream: let url = streams.${stream}; in result // { "streamdump-${stream}" = { description = "Stream archive for ${stream}"; wantedBy = [ "multi-user.target" ]; path = with pkgs; [ wget mp3splt ]; script = '' DIR=mnt/cephfs/c3d2/Radio/${stream}/$(date +%F) mkdir -p $DIR cd $DIR NAME=${stream}-$(date +%T) set +e wget --quiet -O $NAME.mp3 "${url}" set -e mp3splt -s -p th=-44,min=2 -o "@f-@N" $NAME.mp3 rm $NAME.mp3 ''; serviceConfig = { User = "k-ot"; Group = config.users.users.k-ot.group; Restart = "always"; RestartSec = "5sec"; }; }; } ) {} (builtins.attrNames streams); }