#!/bin/sh /etc/rc.common START=95 STOP=10 USE_PROCD=1 CONF_DIR="/srv/webradio/config" MUSIC_DIR="/srv/webradio/music" JINGLE_DIR="/srv/webradio/jingles" LOG_DIR="/var/log/webradio" PLAYLIST_FILE="/tmp/webradio_playlist.m3u" start_service() { local enabled config_load webradio config_get enabled main enabled '0' [ "$enabled" != "1" ] && return 0 # Ensure directories exist mkdir -p "$CONF_DIR" "$MUSIC_DIR" "$JINGLE_DIR" "$LOG_DIR" # Generate configurations /usr/sbin/webradioctl genconfig # Start Icecast if [ -f "$CONF_DIR/icecast.xml" ]; then procd_open_instance icecast procd_set_param command /usr/bin/icecast -c "$CONF_DIR/icecast.xml" procd_set_param respawn procd_set_param stderr 1 procd_set_param pidfile /var/run/icecast.pid procd_close_instance fi # Wait for Icecast to start sleep 2 # Start Ezstream if playlist enabled local playlist_enabled config_get playlist_enabled playlist enabled '0' if [ "$playlist_enabled" = "1" ] && [ -f "$CONF_DIR/ezstream.xml" ]; then /usr/sbin/webradioctl playlist generate procd_open_instance ezstream procd_set_param command /usr/bin/ezstream -c "$CONF_DIR/ezstream.xml" procd_set_param respawn procd_set_param stderr 1 procd_set_param pidfile /var/run/ezstream.pid procd_close_instance fi # Start DarkIce if live enabled local live_enabled config_get live_enabled live enabled '0' if [ "$live_enabled" = "1" ] && [ -f "$CONF_DIR/darkice.cfg" ]; then procd_open_instance darkice procd_set_param command /usr/bin/darkice -c "$CONF_DIR/darkice.cfg" procd_set_param respawn procd_set_param stderr 1 procd_set_param pidfile /var/run/darkice.pid procd_close_instance fi logger -t webradio "WebRadio started" } stop_service() { logger -t webradio "WebRadio stopped" } reload_service() { /usr/sbin/webradioctl genconfig /usr/sbin/webradioctl playlist generate } service_triggers() { procd_add_reload_trigger "webradio" }