#!/bin/bash
#
# Init script for mrepo distribution server.
#
# Written by Dag Wieers <dag@wieers.com>.
#
# chkconfig: 2345 90 10
# description: mrepo distribution server.
#
# processname: mrepo
# config: /etc/mrepo.conf

### BEGIN INIT INFO
# Provides:          mrepo
# Required-Start:    $syslog $remote_fs
# Should-Start:      $time ypbind smtp
# Required-Stop:     $syslog $remote_fs
# Should-Stop:       ypbind smtp
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: mrepo package repositories
# Description:       Start mrepo daemon
#       to provide rpm repositories
### END INIT INFO


[ -r /etc/rc.d/init.d/functions ] && source /etc/rc.d/init.d/functions
#[ -r /etc/rc.status ] && source /etc/rc.status
[ -r /lib/lsb/init-functions ] && source /lib/lsb/init-functions

[ -x /usr/bin/mrepo ] || exit 1

### Default variables
SYSCONFIG="/etc/sysconfig/mrepo"
MREPOCONFIG="/etc/mrepo.conf"

### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

[ -r "$MREPOCONFIG" ] || exit 1

RETVAL=0
prog="mrepo"
desc="rpm distribution server"

PIDFILE=/var/lock/subsys/$prog
if [ -d "/var/lock/subsys/" ]; then
    PIDFILE=/var/lock/subsys/$prog
else
    PIDFILE=/var/lock/subsys/${prog}.pid
fi

start() {
	echo -n $"Starting $desc ($prog): "
	mrepo -q -c $MREPOCONFIG
	RETVAL=$?
	[ $RETVAL -eq 0 ] && success || failure
	echo
	[ $RETVAL -eq 0 ] && touch $PIDFILE
	return $RETVAL
}

stop() {
	echo -n $"Shutting down $desc ($prog): "
	mrepo -q --umount -c $MREPOCONFIG
	RETVAL=$?
	[ $RETVAL -eq 0 ] && success || failure
	echo
	[ $RETVAL -eq 0 ] && rm -f $PIDFILE
	return $RETVAL
}

restart() {
	stop
	start
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart|reload)
	restart
	;;
  reload)
	reload
	;;
  condrestart)
	[ -e $PIDFILE ] && restart
	RETVAL=$?
	;;
  status)
    echo -n "Checking for $desc ($prog): "
    # TODO: improve checking
    [ -e $PIDFILE ] && log_success_msg "" || log_failure_msg ""
    RETVAL=$?
    ;;
  *)
	echo $"Usage: $0 {start|stop|restart|condrestart|status}"
	RETVAL=1
esac

exit $RETVAL
