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