Andrea Veri ef189b9
#! /bin/sh
Andrea Veri ef189b9
### BEGIN INIT INFO
Andrea Veri ef189b9
# Provides:          kgb-bot
Andrea Veri ef189b9
# Required-Start:    $remote_fs $network
Andrea Veri ef189b9
# Required-Stop:     $remote_fs $network
Andrea Veri ef189b9
# Default-Start:     2 3 4 5
Andrea Veri ef189b9
# Default-Stop:      0 1 6
Andrea Veri ef189b9
# Short-Description: Collaborative IRC helper
Andrea Veri ef189b9
# Description:       KGB is an IRC bot, helping people work together by
Andrea Veri ef189b9
#                    notifying an IRC channel when a commit occures.
Andrea Veri ef189b9
### END INIT INFO
Andrea Veri ef189b9
Andrea Veri ef189b9
# Do NOT "set -e"
Andrea Veri ef189b9
Andrea Veri ef189b9
# PATH should only include /usr/* if it runs after the mountnfs.sh script
Andrea Veri ef189b9
PATH=/sbin:/usr/sbin:/bin:/usr/bin
Andrea Veri ef189b9
DESC="Collaborative IRC helper"
Andrea Veri ef189b9
NAME=kgb-bot
Andrea Veri ef189b9
DAEMON=/usr/sbin/$NAME
Andrea Veri ef189b9
DAEMON_ARGS="--config /etc/kgb-bot/kgb.conf"
Andrea Veri ef189b9
PIDFILE=/var/run/kgb-bot/$NAME.pid
Andrea Veri ef189b9
SCRIPTNAME=/etc/init.d/$NAME
Andrea Veri d95fd1b
LOCKFILE=/var/lock/subsys/$NAME
Andrea Veri ef189b9
Andrea Veri c5c8bd9
# source function library
Andrea Veri c5c8bd9
. /etc/init.d/functions
Andrea Veri c5c8bd9
Andrea Veri ef189b9
# Exit if the package is not installed
Andrea Veri ef189b9
[ -x "$DAEMON" ] || exit 0
Andrea Veri ef189b9
Andrea Veri ef189b9
RUN_AS='Fedora-kgb'
Andrea Veri ef189b9
# Read configuration variable file if it is present
Andrea Veri c5c8bd9
[ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
Andrea Veri ef189b9
Andrea Veri ef189b9
#
Andrea Veri ef189b9
# create /var/run/kgb-bot and ensure right permissions
Andrea Veri ef189b9
#
Andrea Veri ef189b9
init_run_dir()
Andrea Veri ef189b9
{
Andrea Veri ef189b9
    RUN_DIR="/var/run/$NAME"
Andrea Veri ef189b9
    [ -d "$RUN_DIR" ] || mkdir "$RUN_DIR" || return 1
Andrea Veri ef189b9
Andrea Veri ef189b9
    chown "$RUN_AS":root "$RUN_DIR"
Andrea Veri ef189b9
    chmod 0775 "$RUN_DIR"
Andrea Veri ef189b9
Andrea Veri ef189b9
    return 0
Andrea Veri ef189b9
}
Andrea Veri ef189b9
Andrea Veri ef189b9
#
Andrea Veri ef189b9
# create /var/log/kgb-bot.log and ensure right permissions
Andrea Veri ef189b9
#
Andrea Veri ef189b9
init_log_file() {
Andrea Veri ef189b9
    LOG=/var/log/kgb-bot.log
Andrea Veri ef189b9
Andrea Veri ef189b9
    if ! test -e $LOG; then
Andrea Veri ef189b9
        touch $LOG
Andrea Veri ef189b9
        chown "$RUN_AS":root $LOG
Andrea Veri ef189b9
        chmod 0644 $LOG
Andrea Veri ef189b9
    fi
Andrea Veri ef189b9
}
Andrea Veri ef189b9
Andrea Veri c5c8bd9
RETVAL=0
Andrea Veri ef189b9
Andrea Veri ef189b9
#
Andrea Veri ef189b9
# Function that starts the daemon/service
Andrea Veri ef189b9
#
Andrea Veri c5c8bd9
start()
Andrea Veri ef189b9
{
Andrea Veri ef189b9
        init_run_dir || return 2
Andrea Veri ef189b9
        init_log_file || return 2
Andrea Veri c5c8bd9
	echo -n $"Starting KGB-Bot: "
Andrea Veri c5c8bd9
        $DAEMON $DAEMON_ARGS
Andrea Veri c5c8bd9
	echo
Andrea Veri ef189b9
Andrea Veri c5c8bd9
	RETVAL=$?
Andrea Veri 4dd71bd
	[ $RETVAL -eq 0 ] && touch $LOCKFILE
Andrea Veri ef189b9
}
Andrea Veri ef189b9
Andrea Veri c5c8bd9
stop()
Andrea Veri c5c8bd9
{
Andrea Veri c5c8bd9
	echo -n $"Stopping KGB-Bot: "
Andrea Veri c5c8bd9
	killproc -p $PIDFILE $NAME
Andrea Veri c5c8bd9
	RETVAL=$?
Andrea Veri c5c8bd9
	echo
Andrea Veri c5c8bd9
	if [ $RETVAL -eq 0 ]; then
Andrea Veri c5c8bd9
		rm -f /var/lock/subsys/$NAME
Andrea Veri c5c8bd9
		rm -f $pidfile
Andrea Veri c5c8bd9
	fi
Andrea Veri ef189b9
}
Andrea Veri ef189b9
Andrea Veri c5c8bd9
reload()
Andrea Veri c5c8bd9
{
Andrea Veri c5c8bd9
	echo -n $"Reloading $NAME: "
Andrea Veri c5c8bd9
	killproc -p $PIDFILE $DAEMON -HUP
Andrea Veri c5c8bd9
	RETVAL=$?
Andrea Veri c5c8bd9
	echo
Andrea Veri ef189b9
}
Andrea Veri ef189b9
Andrea Veri d95fd1b
rh_status() {
Andrea Veri d95fd1b
	status -p $PIDFILE kgb-bot
Andrea Veri d95fd1b
}
Andrea Veri d95fd1b
Andrea Veri d95fd1b
Andrea Veri ef189b9
case "$1" in
Andrea Veri ef189b9
  start)
Andrea Veri c5c8bd9
	[ "$BOT_ENABLED" != "1" ] && echo $DAEMON disabled in /etc/sysconfig/$NAME>&2 && exit 0
Andrea Veri c5c8bd9
Andrea Veri c5c8bd9
	[ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
Andrea Veri c5c8bd9
	start
Andrea Veri ef189b9
	;;
Andrea Veri ef189b9
  stop)
Andrea Veri c5c8bd9
	[ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
Andrea Veri c5c8bd9
	stop
Andrea Veri ef189b9
	;;
Andrea Veri c5c8bd9
  reload)
Andrea Veri c5c8bd9
	echo "Reloading $DESC" "$NAME"
Andrea Veri c5c8bd9
	reload
Andrea Veri ef189b9
	;;
Andrea Veri d95fd1b
  status)
Andrea Veri d95fd1b
	rh_status
Andrea Veri d95fd1b
	RETVAL=$?
Andrea Veri d95fd1b
	if [ $RETVAL -eq 3 -a -f $LOCKFILE ] ; then
Andrea Veri d95fd1b
		RETVAL=2
Andrea Veri d95fd1b
	fi
Andrea Veri d95fd1b
	;;
Andrea Veri ef189b9
  restart)
Andrea Veri f34fe55
	echo "Restarting $DESC" "$NAME"
Andrea Veri c5c8bd9
	stop
Andrea Veri c5c8bd9
	start
Andrea Veri ef189b9
	;;
Andrea Veri ef189b9
  *)
Andrea Veri d95fd1b
	echo "Usage: $SCRIPTNAME {start|stop|restart|status|reload}" >&2
Andrea Veri ef189b9
	exit 3
Andrea Veri ef189b9
	;;
Andrea Veri ef189b9
esac
Andrea Veri ef189b9
Andrea Veri ef189b9
: