#!/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