#! /bin/bash HERE=$(dirname $(readlink -f $0)) URLS=`cat $HERE/stream.db` CURRENT_STREAM="no stream" #will be set when calling `status` if [ ! `id -u` -eq "0" ]; then exec sudo "$0" "$@" fi #if [ ! `id -u` -eq "0" ]; then # echo "we are going sudo..." # exec sudo "$0" "$@" #fi function start() { # start the given stream von $1 REQ=$1 tmux start-server if status &>/dev/null ; then echo "!! Stream already running!" exit 1 fi if echo "$URLS" | while read URL NAME; do if [ "$NAME" = "$REQ" ];then tmux new-session -s streams -n streams -d "while sleep 1;do mplayer $URL;done" echo "** $REQ started" exit 1 fi done; then echo "!! Stream '$REQ' not found!" exit 1 fi } function stop() { #stops every stream if status &>/dev/null; then status | cut -d\ -f2 | xargs printf "** killing %s\n" tmux kill-session -t streams 2>/dev/null || echo "!! killing session failed" else echo "** no stream running"; return 1 fi } function status() { #tmux has-session -t streams 2>/dev/null #RET=$? #tmux list-sessions 2>/dev/null #return $RET EV="`ps -ef | grep mplayer`" if echo "$URLS" | while read URL NAME; do if [ "`echo "$EV" | grep \"$URL\"`" ] ;then echo "** $NAME running ($URL)" exit 1 fi done; then echo "** no stream running" return 1 else return 0 fi } function current() { return 1 } function list() { echo "$URLS" | while read URL NAME ; do echo "$NAME : $URL" done } function shorthelp() { echo "start|stop|restart|status|list [audio stream]" } function longhelp() { B=`basename $0` echo -n "Usage: $B " shorthelp echo " get all available streams with '/$B list' Examples: $B list $B start groove $B restart deepmix $B status $B stop" } case "$1" in start) start $2 ;; stop) stop ;; (switch|restart) stop start $2 ;; status) status exit $? ;; list) list ;; (--help) shorthelp ;; *) longhelp ;; esac