#!/bin/sh
# chkconfig: 345 09 91
# description: Plesk Firewall

### BEGIN INIT INFO
# Provides:          psa-firewall
# Required-Start:    $syslog $remote_fs $network
# Required-Stop:     $syslog $remote_fs $network
# Should-Start:
# Should-Stop:
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: Plesk firewall
# Description:       Plesk firewall module management
### END INIT INFO

SERVICE_NAME="psa-firewall"
MODULE="firewall"
PRODUCT_ROOT_D="/usr/local/psa"

action="$1"
conf="$PRODUCT_ROOT_D/var/modules/$MODULE/${MODULE}-active.sh"
emergency="$PRODUCT_ROOT_D/var/modules/$MODULE/${MODULE}-emergency.sh"

case "$action" in

	start)
		if [ -f "$conf" ]; then
			if "$conf"; then
				echo "$SERVICE_NAME: firewall configuration successfully applied"
				exit 0
			else
				echo "$SERVICE_NAME: failed to apply firewall configuration"
				exit 1
			fi
		else
			echo "$SERVICE_NAME: firewall configuration not found"
			exit 1
		fi
		;;

	stop)
		if "$emergency"; then
			echo "$SERVICE_NAME: firewall successfully disabled"
			exit 0
		else
			echo "$SERVICE_NAME: failed to disable firewall"
			exit 1
		fi
		;;

	restart|force-reload)
		"$0" stop
		"$0" start
		exit
		;;

	help)
		echo "usage: $0 <arg>"
		echo "where argument is one from the list:"
		cat << EOF
	start       -- start ${SERVICE_NAME}
	stop        -- stop ${SERVICE_NAME}
	restart     -- restart ${SERVICE_NAME} if running or start if not running
	help        -- this screen

EOF
		exit 1
		;;

	*)
		echo "usage: $0 (start|stop|restart|help)"
		exit 1
		;;
esac
