#! /bin/sh
### BEGIN INIT INFO
# Provides:          fuse
# Required-Start:    
# Should-Start:      udev
# Required-Stop:     
# Default-Start:     S
# Default-Stop:
# Short-Description: Start and stop fuse.
# Description:       Load the fuse module and mount the fuse control
#	filesystem.
### END INIT INFO

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MOUNTPOINT=/sys/fs/fuse/connections

# Gracefully exit if the package has been removed.
which fusermount3 &>/dev/null || exit 5

case "$1" in
    start|restart|force-reload)
	if ! grep -qw fuse /proc/filesystems; then
		echo -n "Loading fuse module"
		if ! modprobe fuse >/dev/null 2>&1; then
			echo " failed!"
			exit 1
		else
			echo "."
		fi
	else
		echo "Fuse filesystem already available."
	fi
	if grep -qw fusectl /proc/filesystems && \
	   ! grep -qw $MOUNTPOINT /proc/mounts; then
		echo -n "Mounting fuse control filesystem"
		if ! mount -t fusectl fusectl $MOUNTPOINT >/dev/null 2>&1; then
			echo " failed!"
			exit 1
		else
			echo "."
		fi
	else
		echo "Fuse control filesystem already available."
	fi
	;;
    stop)
	if ! grep -qw fuse /proc/filesystems; then
		echo "Fuse filesystem not loaded."
		exit 7
	fi
	if grep -qw $MOUNTPOINT /proc/mounts; then
		echo -n "Unmounting fuse control filesystem"
		if ! umount $MOUNTPOINT >/dev/null 2>&1; then
			echo " failed!"
		else
			echo "."
		fi
	else
		echo "Fuse control filesystem not mounted."
	fi
	if grep -qw "^fuse" /proc/modules; then
		echo -n "Unloading fuse module"
		if ! rmmod fuse >/dev/null 2>&1; then
			echo " failed!"
		else
			echo "."
		fi
	else
		echo "Fuse module not loaded."
	fi
	;;
    status)
	echo -n "Checking fuse filesystem"
	if ! grep -qw fuse /proc/filesystems; then
		echo " not available."
		exit 3
	else
		echo " ok."
	fi
	;;
  *)
	echo "Usage: $0 {start|stop|restart|force-reload|status}"
	exit 1
	;;
esac

exit 0
