#! /bin/sh
#
# qemu-guest-agent Start/Stop qemu-ga daemon
#
# chkconfig: 345 30 30
# description: qemu guest agent daemon
# processname: qemu-ga

# Source function library.
. /etc/init.d/functions

# Check that we're a privileged user
[ `id -u` = 0 ] || exit 4

[ -f /etc/sysconfig/qemu-ga ] && . /etc/sysconfig/qemu-ga

prog="qemu-ga"

RETVAL=0
lockfile=/var/lock/subsys/$prog

# If logfile is unset it defaults to stderr but the daemon
# function of init script redirects stderr to /dev/null
LOGFILE="/var/log/qemu-ga/qemu-ga.log"

# Override pidfile name
# Default: /var/run/qemu-ga.pid
PIDFILE="/var/run/qemu-ga.pid"

start() {

    # Check if binary is installed & executable
    [ -f /usr/bin/$prog ] && [ -x /usr/bin/$prog ] || exit 5

    echo -n $"Starting $prog: "
    ARGS="--daemonize --method virtio-serial --path /dev/virtio-ports/org.qemu.guest_agent.0"
    [ ! -z "$LOGFILE" ] && ARGS="$ARGS --logfile $LOGFILE"
    [ ! -z "$PIDFILE" ] && ARGS="$ARGS --pidfile $PIDFILE"
    [ ! -z "$BLACKLIST_RPC" ] && ARGS="$ARGS --blacklist $BLACKLIST_RPC"
    [ ! -z "$FSFREEZE_HOOK_PATHNAME" ] && ARGS="$ARGS -F${FSFREEZE_HOOK_PATHNAME}"

    daemon /usr/bin/$prog $ARGS
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch $lockfile
    return $RETVAL
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f $lockfile
    return $RETVAL
}

restart() {
    stop
    start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status $prog
        ;;
  restart|reload|force-reload)
        restart
        ;;
  condrestart|try-restart)
        [ -f $lockfile ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac

exit $?
