|
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 |
:
|