#! /bin/sh
# starman       start/stop the starman server
# chkconfig:    345 90 10
# description:  starman web server
# processname:  starman
# config:       /etc/sysconfig/starman
# pidfile:      /var/run/starman.pid

WITHOUT_RC_COMPAT=1

. /etc/init.d/functions

LISTEN="127.0.0.1:8080"
RUNAPP="-e 'sub {[200, [\'Content-Type\' => \'text/html\'], [\'<h1>It works!</h1>\']]}'"
WORKERS=10

SourceIfNotEmpty "/etc/sysconfig/starman"

PIDFILE=/var/run/starman.pid
LOCKFILE=/var/lock/subsys/starman
RETVAL=0

start()
{
	start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user _starman --name starman \
		-- starman --user _starman --group _starman --daemonize --error-log=/var/log/starman/error.log --access-log=/var/log/starman/access.log \
		--pid $PIDFILE --listen $LISTEN --workers $WORKERS $RUNAPP
	RETVAL=$?
	return $RETVAL
}

stop()
{
	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user _starman --retry -15/300 --name starman -- starman
	RETVAL=$?
	return $RETVAL
}

restart()
{
	stop
	start
}

reload()
{
	msg_reloading starman
	stop_daemon --pidfile "$PIDFILE" --expect-user _starman -HUP --name starman -- starman
	RETVAL=$?
	return $RETVAL
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	restart)
		restart
		;;
	reload)
		reload
		;;
	condstop)
		if [ -e "$LOCKFILE" ]; then
			stop
		fi
		;;
	condrestart)
		if [ -e "$LOCKFILE" ]; then
			restart
		fi
		;;
	status)
		status --pidfile "$PIDFILE" --expect-user _starman --name starman -- starman
		RETVAL=$?
	;;
	*)
		msg_usage "${0##*/} {start|stop|restart|condstop|condrestart|status}"
		RETVAL=1
esac

exit $RETVAL
