#!/bin/sh
#
# Like what you see? Join us!
# https://www.univention.com/about-us/careers/vacancies/
#
# Copyright 2007-2023 Univention GmbH
#
# http://www.univention.de/
#
# All rights reserved.
#
# The source code of this program is made available
# under the terms of the GNU Affero General Public License version 3
# (GNU AGPL V3) as published by the Free Software Foundation.
#
# Binary versions of this program provided by Univention to you as
# well as other copyrighted, protected or trademarked materials like
# Logos, graphics, fonts, specific documentations and configurations,
# cryptographic keys etc. are subject to a license agreement between
# you and Univention and not subject to the GNU AGPL V3.
#
# In the case you use this program under the terms of the GNU AGPL V3,
# the program is provided in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License with the Debian GNU/Linux or Univention distribution in file
# /usr/share/common-licenses/AGPL-3; if not, see
# <http://www.gnu.org/licenses/>.

### BEGIN INIT INFO
# Provides:          quotarpc
# Short-Description: Starts rpc process for remote quota handling
# Required-Start:    $remote_fs $syslog quota
# Required-Stop:     $remote_fs $syslog quota
# Should-Start:      $portmap rpcbind
# Should-Stop:       $portmap rpcbind
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

@%@UCRWARNING=# @%@

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=rpc.rquotad
DESC="quota service"

# names of binaries
DAEMON=/usr/sbin/rpc.rquotad

# check if quota are enabled
need_rquotad=0
if test -f /etc/exports && grep -q '^/' /etc/exports; then
	if grep -q '^[^#]*quota' /etc/fstab; then # normal quota option
        	need_rquotad=1
	elif grep -q '^[^#]*qnoenforce' /etc/fstab; then # xfs non-enforced quota
        	need_rquotad=1
	fi
fi

test -f $DAEMON || exit 0

. /lib/lsb/init-functions

# check if there are some options to rpc.rquotad
test -f /etc/default/quota && . /etc/default/quota

pidp=`pidof portmap`
pidr=`pidof rpcbind`

set -e

case "$1" in
  start)
	# To start the daemon, portmap must be up and running
	if [ -x $DAEMON ] && [ $need_rquotad = 1 ]; then
           if [ -z "$pidp" ] && [ -z "$pidr" ] ; then
		log_warning_msg "Not starting $DESC rpc.rquotad, because neither portmap nor rcpbind are running"
	   else
		log_daemon_msg "Starting $DESC" "rpc.rquotad"
		start-stop-daemon --start --quiet --exec $DAEMON -- $RPCRQUOTADOPTS
		log_end_msg $?
	   fi
	fi
	;;
  stop)
	log_daemon_msg "Stopping $DESC" "rpc.rquotad"
	start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
	log_end_msg $?
	;;
  restart|force-reload)
	#
	#	If the "reload" option is implemented, move the "force-reload"
	#	option to the "reload" entry above. If not, "force-reload" is
	#	just the same as "restart".
	#
	$0 stop
	$0 start
	;;
  status)
	status_of_proc $DAEMON quotarpc
	;;
  *)
	echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2
	exit 1
	;;
esac

exit 0
