#!/bin/sh
# chkconfig: 2345 30 70
### BEGIN INIT INFO
# Provides:          pulseaudio
# Required-Start:    $local_fs $network modules
# Required-Stop:     $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: pulseaudio system setup
# Description:       pulseaudio system setup
# X-Start-Before:    x fb
# X-Stop-After:      x fb
# X-Timesys-Start-Number:  30
# X-Timesys-Stop-Number:  70
### END INIT INFO

DAEMON=pulseaudio
# uncomment these to run in system mode
#START_PULSEAUDIO=1
#DAEMON_OPTIONS="--system"
PID_FILE=/var/run/pulse/pid

case "$1" in
    start)
        if ! grep ^pulse /etc/passwd > /dev/null; then
            echo "$0: Creating system user 'pulse' with generic settings.  Review and modify as required."
            yes '' | adduser -G pulse pulse >/dev/null 2>&1 || yes '' | useradd pulse >/dev/null 2>&1
        fi
        mkdir -p /var/run/pulse >/dev/null 2>&1
        chown pulse: /var/run/pulse >/dev/null 2>&1

        if [ -e $PID_FILE ]; then
            PIDDIR=/proc/$(cat $PID_FILE)
            if [ -d ${PIDDIR} -a -n "$(readlink -f ${PIDDIR}/exe 2>/dev/null)" ]; then
                echo "$DAEMON already started; not starting."
                exit  
            else
                echo "Removing stale PID file $PID_FILE."
                rm -f $PID_FILE
            fi
        fi
        if [ -n "$START_PULSEAUDIO" ]; then
          echo -n "Starting pulseaudio: "
          $DAEMON $DAEMON_OPTIONS & >/dev/null 2>&1 && \
            echo '[ OK ]' || echo '[FAIL]'
        fi
    ;;
    stop)
        if [ -f $PID_FILE ]; then
            echo -n "Stopping pulseaudio: "
            read PID < $PID_FILE
            kill $PID 2>&1 && \
              echo '[ OK ]' || echo '[FAIL]'
        else
            echo "pid file not found... is pulseaudio running?"
        fi
    ;;
    restart)
	$0 stop
	$0 start
    ;;
    *)
        echo "usage: $0 [ start | stop | restart ]"
    ;;
esac
