#!/bin/sh
# Copyright (C) 2004 International Business Machines Corporation and others.
# All Rights Reserved. This program and the accompanying
# materials are made available under the terms of the
# Common Public License v1.0 which accompanies this distribution.
#
# Author: Brian King <brking@us.ibm.com>
#
# iprupdate
#
# System startup script for the ipr microcode update facility
#
### BEGIN INIT INFO
# Provides: iprupdate
# Required-Start:    $local_fs
# Should-Start:      $remote_fs $syslog
# Required-Stop:     $local_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start the iprupdate utility
# Description:       Start the iprupdate utility
### END INIT INFO

IPRUPDATE=/sbin/iprupdate
test -x $IPRUPDATE || exit 5
. /lib/lsb/init-functions

start() {
	echo "Checking ipr microcode levels"
	if [ ! -d /sys/class/scsi_generic ] ; then
	    modprobe sg
	fi
	start_daemon $IPRUPDATE --daemon

	RETVAL=$?
	if [ $RETVAL -eq 0 ]; then
	    echo -n "Completed ipr microcode updates"
	    log_success_msg " "
	else
	    echo -n "Completed ipr microcode updates"
	    log_failure_msg " "
	fi
        return $RETVAL
}

stop() {
    echo -n "Shutting down ipr update daemon"
    killproc $IPRUPDATE
    
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
	log_success_msg " "
    else
	log_failure_msg " "
    fi
    return $RETVAL
}

restart() {
    $0 stop
    $0 start
    return $RETVAL
}

reload() {
    $0 stop
    $0 start
    return $RETVAL
}

status() {
    echo -n "Checking for ipr update daemon: "

    pidofproc $IPRUPDATE > /dev/null 2>&1

    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
	log_success_msg "running"
    else
	log_failure_msg "unused"
    fi
    return $RETVAL
}

case "$1" in
	start)
		start
	;;
	stop)
		stop
	;;
	restart)
		restart
	;;
	reload)
		reload
	;;
	status)
		status
	;;
	*)
		echo "Usage: $0 {start|stop|status|restart|reload}"
		exit 1
	;;
esac
