1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 18:21:07 +01:00
Files
niveum/packages/mpv-radio.nix

36 lines
753 B
Nix

{
writeText,
lib,
writers,
mpv,
dmenu,
coreutils,
gnused,
di-fm-key-file,
executableName ? "mpv-radio",
mpvCommand ? "${mpv}/bin/mpv --force-window=yes"
}: let
streams = import ../lib/streams.nix {
di-fm-key = "%DI_FM_KEY%";
};
streams-tsv = writeText "streams.tsv" (lib.concatMapStringsSep "\n" ({
desc ? "",
stream,
station,
...
}: "${station}\t${desc}\t${stream}")
streams);
in
writers.writeDashBin executableName ''
set -x
if [ -z ''${DI_FM_KEY} ]; then
DI_FM_KEY=$(cat "${di-fm-key-file}")
fi
exec ${mpvCommand} "$(
${dmenu}/bin/dmenu -i -l 5 < ${streams-tsv} \
| ${coreutils}/bin/cut -f3 \
| ${gnused}/bin/sed s/%DI_FM_KEY%/"$DI_FM_KEY"/
)"
''