#!/bin/bash

STREAMS="
smoothjazz:http://207.200.96.226:8052
frieb:http://shoutcast.classicaljunk.net:8002/
pop:http://66.28.144.220:8089
reggae:http://216.179.194.252:9074
house:http://64.236.34.67:5190/stream/1007
"

cd /mnt/warez || exit 1
[ -d files/ ] || mkdir files || exit 1
[ -d logs/ ] || mkdir logs || exit 1
cd files/ || exit 1

logto() {
  FILE="$1"
  while read; do
    echo "$REPLY" | col -b >> "$FILE"
  done
}

rip_stop() {
  echo Stopping streamripper... >&2
  rm /mnt/warez/server-started
  killall streamripper 2>/dev/null
  sleep 2
  killall -9 streamripper 2>/dev/null
  killall -9 streamripper 2>/dev/null
  sleep 5
  sleep 2
}

rip_start() {
  ps xua | grep streamrippe[r] &>/dev/null && rip_stop
  echo Starting streamripper... >&2
  touch /mnt/warez/server-started
  for STREAM in $STREAMS; do
    STREAM_ID="`echo "$STREAM" | cut -d: -f1`"
    STREAM_URL="`echo "$STREAM" | cut -d: -f2-`"
    {
      while
	[ -f /mnt/warez/server-started ]
      do
	sleep 5
	echo "streamripper started: `date`" | logto "../logs/$STREAM_ID"
        streamripper "$STREAM_URL" -c 2>&1 | logto "../logs/$STREAM_ID"
	echo "streamripper stopped: `date`" | logto "../logs/$STREAM_ID"
      done
    } &
  done
}

if [ "$1" = "start" ]; then
  rip_start
elif [ "$1" = "stop" ]; then
  rip_stop
elif [ "$1" = "restart" ]; then
  rip_stop
  rip_start
else
  echo "Usage: $0 start|stop" >&2
  exit 1
fi
