Blob Blame History Raw
#! /bin/sh
### BEGIN INIT INFO
# Provides:          kgb-bot
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Collaborative IRC helper
# Description:       KGB is an IRC bot, helping people work together by
#                    notifying an IRC channel when a commit occures.
### END INIT INFO

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Collaborative IRC helper"
NAME=kgb-bot
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="--config /etc/kgb-bot/kgb.conf"
PIDFILE=/var/run/kgb-bot/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
LOCKFILE=/var/lock/subsys/$NAME

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

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

RUN_AS='Fedora-kgb'
# Read configuration variable file if it is present
[ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME

#
# create /var/run/kgb-bot and ensure right permissions
#
init_run_dir()
{
    RUN_DIR="/var/run/$NAME"
    [ -d "$RUN_DIR" ] || mkdir "$RUN_DIR" || return 1

    chown "$RUN_AS":root "$RUN_DIR"
    chmod 0775 "$RUN_DIR"

    return 0
}

#
# create /var/log/kgb-bot.log and ensure right permissions
#
init_log_file() {
    LOG=/var/log/kgb-bot.log

    if ! test -e $LOG; then
        touch $LOG
        chown "$RUN_AS":root $LOG
        chmod 0644 $LOG
    fi
}

RETVAL=0

#
# Function that starts the daemon/service
#
start()
{
        init_run_dir || return 2
        init_log_file || return 2
	echo -n $"Starting KGB-Bot: "
        $DAEMON $DAEMON_ARGS
	echo

	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch $LOCKFILE
}

stop()
{
	echo -n $"Stopping KGB-Bot: "
	killproc -p $PIDFILE $NAME
	RETVAL=$?
	echo
	if [ $RETVAL -eq 0 ]; then
		rm -f /var/lock/subsys/$NAME
		rm -f $pidfile
	fi
}

reload()
{
	echo -n $"Reloading $NAME: "
	killproc -p $PIDFILE $DAEMON -HUP
	RETVAL=$?
	echo
}

rh_status() {
	status -p $PIDFILE kgb-bot
}


case "$1" in
  start)
	[ "$BOT_ENABLED" != "1" ] && echo $DAEMON disabled in /etc/sysconfig/$NAME>&2 && exit 0

	[ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
	start
	;;
  stop)
	[ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
	stop
	;;
  reload)
	echo "Reloading $DESC" "$NAME"
	reload
	;;
  status)
	rh_status
	RETVAL=$?
	if [ $RETVAL -eq 3 -a -f $LOCKFILE ] ; then
		RETVAL=2
	fi
	;;
  restart)
	echo "Restarting $DESC" "$NAME"
	stop
	start
	;;
  *)
	echo "Usage: $SCRIPTNAME {start|stop|restart|status|reload}" >&2
	exit 3
	;;
esac

: