#!/bin/sh # pianobarctl # This script uses a specified named pipe (FIFO) to control pianobar. # Written by Phillip Warner VERSION=0.1 # 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" LOVE="+" BAN="-" 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 Play / Pause" echo " -x, --play Play / Pause" echo " -l, --love Love Song" echo " -b, --ban Ban Song" 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 $PLAYPAUSE > $PIANOBARCTL ;; -l|--love ) echo -n $LOVE > $PIANOBARCTL ;; -b|--ban ) echo -n $BAN > $PIANOBARCTL ;; * ) usage ;; esac else usage fi exit