#!/bin/bash
#
# chkconfig init header
#
# ovmd: Oracle VM guest daemon
#
# chkconfig: 345 00 99
# description: This is the Oracle VM guest daemon.
#
# LSB init header
#
### BEGIN INIT INFO
# Provides: ovmd
# Default-Start: 3 4 5
# Short-Description: Oracle VM guest daemon
# Description: This is the Oracle VM guest daemon.
### END INIT INFO

. /etc/rc.d/init.d/functions

SERVICE=ovmd
PROCESS=ovmd
PIDFILE=/var/run/$SERVICE.pid
OVMD_SYSCONFIG=/etc/sysconfig/ovmd
OVMD_ARGS=
INITIAL_CONFIG=
DELETE_INITIAL_CONFIG_PARAMS=
RETVAL=0

[ -f $OVMD_SYSCONFIG ] && . $OVMD_SYSCONFIG

enable_initial_config() {
    sed -i 's/^INITIAL_CONFIG=.*/INITIAL_CONFIG=yes/g' $OVMD_SYSCONFIG
}

disable_initial_config() {
    sed -i 's/^INITIAL_CONFIG=.*/INITIAL_CONFIG=no/g' $OVMD_SYSCONFIG
}

start() {
    modprobe ovmapi >/dev/null 2>&1
    sleep 3
    if [ "$INITIAL_CONFIG" = "yes" ]; then
        [ -x /usr/bin/plymouth ] && /usr/bin/plymouth --hide-splash
        action $"Starting OVM template configure: " $SERVICE -s configure
        RETVAL=$?
        [ -x /usr/bin/plymouth ] && /usr/bin/plymouth --show-splash

        if [ $RETVAL -eq 0 ]; then
            disable_initial_config
        fi

        if [ "$DELETE_INITIAL_CONFIG_PARAMS" = "yes" ]; then
            $SERVICE -x
        fi
    fi

    echo -n $"Starting OVM guest daemon: "
    daemon --pidfile $PIDFILE --check $SERVICE $PROCESS $OVMD_ARGS
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SERVICE
}

stop() {
    echo -n $"Stopping OVM guest daemon: "
    killproc -p $PIDFILE $PROCESS
    RETVAL=$?
    echo
    if [ $RETVAL -eq 0 ]; then
        rm -f /var/lock/subsys/$SERVICE
        rm -f $PIDFILE
    fi
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        status -p $PIDFILE $PROCESS
        RETVAL=$?
        ;;
    condrestart)
        [ -f /var/lock/subsys/$SERVICE ] && restart || :
        ;;
    enable-initial-config)
        enable_initial_config
        RETVAL=$?
        ;;
    disable-initial-config)
        disable_initial_config
        RETVAL=$?
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|status|condrestart|enable-initial-config|disable-initial-config}"
        exit 1
        ;;
esac

exit $RETVAL
