summaryrefslogtreecommitdiff
path: root/templates/srv
diff options
context:
space:
mode:
Diffstat (limited to 'templates/srv')
-rw-r--r--templates/srv/radio/create-playlist.sh.j222
-rw-r--r--templates/srv/radio/radio.liq.j223
2 files changed, 45 insertions, 0 deletions
diff --git a/templates/srv/radio/create-playlist.sh.j2 b/templates/srv/radio/create-playlist.sh.j2
new file mode 100644
index 0000000..d596e8a
--- /dev/null
+++ b/templates/srv/radio/create-playlist.sh.j2
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+DIR="{{ radio_music_dir }}"
+
+> "${DIR}/playlist.txt"
+for i in "${DIR}"/tracks/*.mp3; do
+ title="$(basename "${i}" .mp3)"
+ printf "%s\n" "annotate:title=\"${title}\":${i}" >> "${DIR}/playlist.txt"
+done
+
+if id -u icecast2 >/dev/null 2>&1 && getent group icecast >/dev/null 2>&1; then
+ chown -R icecast2:icecast "${DIR}"
+ printf "%s\n" "[inf] chowned ${DIR} with icecast2:icecast"
+else
+ printf "%s\n" "[err] user or group icecast2:icecast does not exist, skipping chown"
+fi
+
+if systemctl is-active liquidsoap-radio.service; then
+ systemctl restart liquidsoap-radio.service
+else
+ printf "%s\n" "[err] liquidsoap-radio.service is not active, skipping restart"
+fi
diff --git a/templates/srv/radio/radio.liq.j2 b/templates/srv/radio/radio.liq.j2
new file mode 100644
index 0000000..0a070fe
--- /dev/null
+++ b/templates/srv/radio/radio.liq.j2
@@ -0,0 +1,23 @@
+#!/usr/bin/liquidsoap
+
+#settings.init.allow_root := true
+set("log.file.path", "{{ radio_music_dir }}/logs/radio.log")
+
+music = playlist("{{ radio_music_dir }}/playlist.txt")
+music = mksafe(music)
+
+def append_branding(m) =
+ title = m["title"]
+ [("title", "#{title}")]
+end
+
+music = map_metadata(append_branding, music)
+
+output.icecast(
+ %mp3(bitrate=128),
+ music,
+ host="localhost",
+ port=8000,
+ password="{{ random_password }}",
+ mount="/stream",
+)