aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/rc.d/hyperbot
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/rc.d/hyperbot')
-rw-r--r--contrib/rc.d/hyperbot77
1 files changed, 77 insertions, 0 deletions
diff --git a/contrib/rc.d/hyperbot b/contrib/rc.d/hyperbot
new file mode 100644
index 0000000..9ebe5c3
--- /dev/null
+++ b/contrib/rc.d/hyperbot
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# Set the locale
+export LANG=${LOCALE:-C}
+if [[ -r /etc/locale.conf ]]; then
+ parse_envfile /etc/locale.conf "${localevars[@]}"
+fi
+
+declare -a pids
+
+while read -r line
+do
+ pids+=("${line}")
+done < <( pgrep -u hyperbot )
+
+case $1 in
+start)
+ stat_busy "Starting hyperbot"
+
+ # Check it's not already running.
+ if ! (( ${#pids[*]} ))
+ then
+ su - hyperbot -c "cd /srv/hyperbot ; ./envbot & ./hyperbot_fixer & ./issues_change_detector" &
+ # If it's not running then we fail.
+ if ! pgrep hyperbot &>/dev/null
+ then
+ stat_fail
+ exit 1
+ fi
+
+ add_daemon hyperbot
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+stop)
+ stat_busy "Stopping hyperbot"
+
+ if ! (( ${#pids[*]} ))
+ then
+ echo "It's not running"
+ stat_fail
+ exit 1
+ fi
+
+ for (( i=0 ; i!=${#pids[*]} ; i++ ))
+ do
+ kill "${pids[${i}]}" &>/dev/null ||
+ {
+ stat_fail
+ exit 1
+ }
+ done
+
+ unset pids
+
+ rm_daemon hyperbot
+ stat_done
+
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ echo "Usage: $0 {start|stop|restart}" >&2
+ exit 1
+
+esac