
Add Puppet instructions to run the PTGbot IRC bot. This is based on the puppet-statusbot module, and tweaked to conform to PTGbot configuration file format. Configurable elements include bot nickname, password, and channel. Other elements (like ethercalc pointers) will require to be refreshed in this module for each PTG event. The next step would be to set up a web server to serve static content from /var/lib/ptgbot/www. Change-Id: Ia3c5a44c33dab1914c9908280bec1323e35431f2
151 lines
3.6 KiB
Bash
Executable File
151 lines
3.6 KiB
Bash
Executable File
#! /bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: ptgbot
|
|
# Required-Start: $remote_fs $syslog
|
|
# Required-Stop: $remote_fs $syslog
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: PTG schedule bot
|
|
# Description: Produces and serves a dynamically updated event schedule
|
|
### END INIT INFO
|
|
|
|
# Author: Thierry Carrez <thierry@openstack.org>
|
|
# Based on statusbot work by James E. Blair <jeblair@openstack.org>
|
|
|
|
# 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="PTGbot"
|
|
NAME=ptgbot
|
|
DAEMON=/usr/local/bin/$NAME
|
|
DAEMON_ARGS="/etc/ptgbot/ptgbot_config.json"
|
|
PIDFILE=/var/run/$NAME/$NAME.pid
|
|
SCRIPTNAME=/etc/init.d/$NAME
|
|
USER=ptgbot
|
|
|
|
# Exit if the package is not installed
|
|
[ -x "$DAEMON" ] || exit 0
|
|
|
|
# Read configuration variable file if it is present
|
|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
|
|
# Load the VERBOSE setting and other rcS variables
|
|
. /lib/init/vars.sh
|
|
|
|
# Define LSB log_* functions.
|
|
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
|
|
. /lib/lsb/init-functions
|
|
|
|
#
|
|
# Function that starts the daemon/service
|
|
#
|
|
do_start()
|
|
{
|
|
# Return
|
|
# 0 if daemon has been started
|
|
# 1 if daemon was already running
|
|
# 2 if daemon could not be started
|
|
|
|
mkdir -p /var/run/$NAME
|
|
chown $USER /var/run/$NAME
|
|
start-stop-daemon --start --quiet --pidfile $PIDFILE -c $USER --exec $DAEMON --test > /dev/null \
|
|
|| return 1
|
|
start-stop-daemon --start --quiet --pidfile $PIDFILE -c $USER --exec $DAEMON -- \
|
|
$DAEMON_ARGS \
|
|
|| return 2
|
|
# Add code here, if necessary, that waits for the process to be ready
|
|
# to handle requests from services started subsequently which depend
|
|
# on this one. As a last resort, sleep for some time.
|
|
}
|
|
|
|
#
|
|
# Function that stops the daemon/service
|
|
#
|
|
do_stop()
|
|
{
|
|
# Return
|
|
# 0 if daemon has been stopped
|
|
# 1 if daemon was already stopped
|
|
# 2 if daemon could not be stopped
|
|
# other if a failure occurred
|
|
start-stop-daemon --stop --signal 9 --pidfile $PIDFILE
|
|
RETVAL="$?"
|
|
[ "$RETVAL" = 2 ] && return 2
|
|
rm -f /var/run/$NAME/*
|
|
return "$RETVAL"
|
|
}
|
|
|
|
#
|
|
# Function that sends a SIGHUP to the daemon/service
|
|
#
|
|
do_reload() {
|
|
#
|
|
# If the daemon can reload its configuration without
|
|
# restarting (for example, when it is sent a SIGHUP),
|
|
# then implement that here.
|
|
#
|
|
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
|
|
return 0
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
|
do_start
|
|
case "$?" in
|
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
esac
|
|
;;
|
|
stop)
|
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
|
do_stop
|
|
case "$?" in
|
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
|
esac
|
|
;;
|
|
status)
|
|
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
;;
|
|
#reload|force-reload)
|
|
#
|
|
# If do_reload() is not implemented then leave this commented out
|
|
# and leave 'force-reload' as an alias for 'restart'.
|
|
#
|
|
#log_daemon_msg "Reloading $DESC" "$NAME"
|
|
#do_reload
|
|
#log_end_msg $?
|
|
#;;
|
|
restart|force-reload)
|
|
#
|
|
# If the "reload" option is implemented then remove the
|
|
# 'force-reload' alias
|
|
#
|
|
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
do_stop
|
|
case "$?" in
|
|
0|1)
|
|
do_start
|
|
case "$?" in
|
|
0) log_end_msg 0 ;;
|
|
1) log_end_msg 1 ;; # Old process is still running
|
|
*) log_end_msg 1 ;; # Failed to start
|
|
esac
|
|
;;
|
|
*)
|
|
# Failed to stop
|
|
log_end_msg 1
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
|
|
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
exit 3
|
|
;;
|
|
esac
|
|
|
|
:
|