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