#!/bin/sh

fatal() {
	echo $@ >&2
	exit 1
}

[ $# -ge 1 ] || fatal "usage: $0 station [length [outfile]]"

STATION=${1}
SECONDS=${2}
OUTFILE=${3}

CONFIG="$HOME/.radiorc"
. $CONFIG || fatal "Config file $CONFIG not found, no stations defined"
grep "^$STATION=" $CONFIG > /dev/null || fatal "Station '$STATION' not defined"
eval URL=\$$STATION

[ -z "$OUTFILE" ] && OUTFILE="$STATION-`date +%Y%m%d%H%M%S`.${URL##*.}"
[ -e "$OUTFILE" ] && fatal "$OUTFILE already exists"

if [ $# -eq 1 ] ; then
	play=`which play` || fatal "play(1) not found"
	$play $URL
else
	ftp -g -p -V -o $OUTFILE $URL >/dev/null 2>&1 &
	PID=$! && [ "$PID" ] && ps -p $PID >/dev/null 2>&1 ||
		fatal "Error downloading $URL"
	sleep $SECONDS && ps -p $PID >/dev/null 2>&1 ||
		fatal "Process $PID downloading $OUTFILE already exited"
	kill -9 $PID >/dev/null 2>&1
fi
