Commit 1f5d9aab authored by Vitaly Lipatov's avatar Vitaly Lipatov

checkmpd: add socket support

parent 933f1cee
#!/bin/bash
ROOT_DIRECTORY=/home/icecastradio/radio_mpd/
URL=http://radio.azbyka.ru/json.xsl
cd $ROOT_DIRECTORY || exit
STREAMS=`ls -l $ROOT_DIRECTORY | grep "^d" | awk '{print $9}'`
CONTENT=$(curl $URL 2>/dev/null)
ACTIVE_STREAMS=`grep -oP '(?<=/).*?(?=")' <<< $CONTENT`
......@@ -25,25 +26,35 @@ OFFLINE_STREAMS=()
# 2) Compare "$ACTIVE_STREAMS" and variable "STREAMS".
# If "$ELEM" not in "$ACTIVE_STREAMS" , add "$ELEM" in $OFFLINE_STREAMS.
elem_control()
{
local bind
bind=`cat $ROOT_DIRECTORY/$1.mpd.conf | grep "^bind_to_address" | awk '{ print $2 ; exit; }' | tr -d \"`
[ -e "$bind" ] && echo "--host $bind" && return
bind=`cat $ROOT_DIRECTORY/$1.mpd.conf | grep "^port" | awk '{ print $2 ; exit; }' | tr -d \"`
echo "-p $bind"
}
echo "MPD Status:"
for ELEM in $STREAMS; do
# Решаем ситуацию , когда поток просто на паузе.
ELEM_PORT=`cat $ROOT_DIRECTORY/$ELEM.mpd.conf | grep port | awk '{ print $2 ; exit; }' | tr -d \"`
ELEM_STATUS=`mpc -p $ELEM_PORT | awk '{print $1}' | sed -n 2p`
ELEM_CONTROL="$(elem_control $ELEM)"
ELEM_STATUS=$(mpc $ELEM_CONTROL | awk '{print $1}' | sed -n 2p)
if [[ "$ELEM_STATUS" =~ "[paused]" ]]; then
echo "$ELEM was paused. Started playing again"
mpc -p $ELEM_PORT play
mpc $ELEM_CONTROL play
elif [[ "$ELEM_STATUS" = "" ]]; then
echo "$ELEM is empty. Started playing again"
mpc -p $ELEM_PORT play
mpc $ELEM_CONTROL play
else
echo -e "$ELEM\tStatus: '$ELEM_STATUS'"
fi
if [[ $ELEM_STATUS =~ "error" ]]; then
if [[ $ELEM_STATUS =~ "ERROR:" ]]; then
echo "$ELEM was paused with error. See logs in /home/icecastradio/radio_mpd/$ELEM/mpd.log"
mpc -p $ELEM_PORT play
mpc $ELEM_CONTROL play
fi
if [[ ! $ACTIVE_STREAMS =~ $ELEM ]]; then
......@@ -55,9 +66,9 @@ done
# Ниже ситуация с отмонтированным потоком:
echo -e "\nRestarting unmounted MPD-STREAMS:"
for ELEM in ${OFFLINE_STREAMS[@]}; do
ELEM_PORT=`cat $ROOT_DIRECTORY/$ELEM.mpd.conf | grep port | awk '{ print $2 ; exit; }' | tr -d \"`
ELEM_CONTROL="$(elem_control $ELEM)"
# Стартуем поток
mpc -p $ELEM_PORT play
mpc $ELEM_CONTROL play
echo $ELEM
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment