slackbuilds/audio/pianobar/pianobarctl

84 lines
1.9 KiB
Bash

#!/bin/sh
# pianobarctl
# This script uses a specified named pipe (FIFO) to control pianobar.
# Written by Phillip Warner
VERSION=0.2
# - Updated for new play and "stop" (pause only) controls
# added to pianobar starting at version 2013.05.19
# - Added quit option
# This is the FIFO that is used to control pianobar
# It must exist before running pianobar in order for remote control to work
PIANOBARCTL=~/.config/pianobar/ctl
# Control Functions
NEXT="n"
PLAYPAUSE="p"
PLAY="P"
PAUSE="S"
LOVE="+"
BAN="-"
QUIT="q"
set -e
usage() {
echo "$(basename $0) $VERSION - by Phillip Warner"
echo "Usage:"
echo " $0 [OPTION]"
echo "Only one parameter can be used at a time."
echo "The script's parameters are:"
echo " -h, --help Help"
echo " -n, --next Play Next"
echo " -p, --pause Toggle Play / Pause"
echo " -x, --play Play"
echo " -v, --stop Pause"
echo " -l, --love Love Song"
echo " -b, --ban Ban Song"
echo " -q, --quit Quit Program"
echo
echo "Current pianobar PIDs (euid=$(id -u)):"
pgrep -u $(id -u) pianobar$
}
# Make sure the FIFO exists
if ! [ -p $PIANOBARCTL ]
then
echo "ERROR. FIFO $PIANOBARCTL does not exist. Try running mkfifo $PIANOBARCTL and then restarting pianobar first. Aborting..."
exit 1
fi
# Make sure pianobar is running and that there is no more than one arg
if ! (pgrep -u $(id -u) pianobar$ &> /dev/null) || [ $2 ]
then
usage
elif [ $1 ]
then
case $1 in
-h|--help ) usage
;;
-n|--next ) echo -n $NEXT > $PIANOBARCTL
;;
-p|--pause ) echo -n $PLAYPAUSE > $PIANOBARCTL
;;
-x|--play ) echo -n $PLAY > $PIANOBARCTL
;;
-v|--stop ) echo -n $PAUSE > $PIANOBARCTL
;;
-l|--love ) echo -n $LOVE > $PIANOBARCTL
;;
-b|--ban ) echo -n $BAN > $PIANOBARCTL
;;
-q|--quit ) echo -n $QUIT > $PIANOBARCTL
;;
* ) usage
;;
esac
else
usage
fi
exit