40 lines
989 B
Nix
40 lines
989 B
Nix
{ 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);
|
|
}
|