summaryrefslogtreecommitdiff
path: root/audio/pianobar/pianobarctl
blob: ccc99d07a5e753616d5a081b622c728b3e199e3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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