2023-02-24 23:10:45 +01:00
|
|
|
{
|
|
|
|
|
writeText,
|
|
|
|
|
lib,
|
|
|
|
|
writers,
|
|
|
|
|
mpv,
|
|
|
|
|
dmenu,
|
|
|
|
|
coreutils,
|
|
|
|
|
gnused,
|
|
|
|
|
di-fm-key-file,
|
2024-06-09 22:42:50 +02:00
|
|
|
executableName ? "mpv-radio",
|
|
|
|
|
mpvCommand ? "${mpv}/bin/mpv --force-window=yes"
|
2023-02-24 23:10:45 +01:00
|
|
|
}: 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
|
2024-06-09 22:42:50 +02:00
|
|
|
writers.writeDashBin executableName ''
|
|
|
|
|
set -x
|
|
|
|
|
|
2023-07-15 22:33:35 +02:00
|
|
|
if [ -z ''${DI_FM_KEY} ]; then
|
|
|
|
|
DI_FM_KEY=$(cat "${di-fm-key-file}")
|
|
|
|
|
fi
|
2024-06-09 22:42:50 +02:00
|
|
|
exec ${mpvCommand} "$(
|
2023-02-24 23:10:45 +01:00
|
|
|
${dmenu}/bin/dmenu -i -l 5 < ${streams-tsv} \
|
|
|
|
|
| ${coreutils}/bin/cut -f3 \
|
|
|
|
|
| ${gnused}/bin/sed s/%DI_FM_KEY%/"$DI_FM_KEY"/
|
|
|
|
|
)"
|
|
|
|
|
''
|