summaryrefslogtreecommitdiff
path: root/audio/pianobar/pianobarctl
diff options
context:
space:
mode:
Diffstat (limited to 'audio/pianobar/pianobarctl')
-rw-r--r--audio/pianobar/pianobarctl71
1 files changed, 71 insertions, 0 deletions
diff --git a/audio/pianobar/pianobarctl b/audio/pianobar/pianobarctl
new file mode 100644
index 0000000000..ccc99d07a5
--- /dev/null
+++ b/audio/pianobar/pianobarctl
@@ -0,0 +1,71 @@
+#!/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