#! /bin/sh
### BEGIN INIT INFO
# Provides:          umountroot
# Required-Start:
# Required-Stop:
# Should-Stop:       halt reboot kexec
# Default-Start:
# Default-Stop:      0 6
# Short-Description: Mount the root and /usr filesystems read-only.
### END INIT INFO

PATH=/sbin:/bin
. /lib/init/vars.sh

. /lib/lsb/init-functions

remount_ro() {
	[ "$VERBOSE" = no ] || log_action_begin_msg "Mounting $1 filesystem read-only"
	MOUNT_FORCE_OPT=
	[ "$(uname -s)" = "GNU/kFreeBSD" ] && MOUNT_FORCE_OPT=-f
	# This:
	#     mount -n -o remount,ro /
	# will act on a bind mount of / if there is one.
	# See #339023 and the comment in checkroot.sh
	mount $MOUNT_FORCE_OPT -n -o remount,ro -t dummytype dummydev $2 2>/dev/null ||
		mount $MOUNT_FORCE_OPT -n -o remount,ro dummydev $2 2>/dev/null ||
		mount $MOUNT_FORCE_OPT -n -o remount,ro $2
	ES=$?
	[ "$VERBOSE" = no ] || log_action_end_msg $ES
}

do_stop() {
	remount_ro root /
	if mountpoint -q /usr; then
		remount_ro /usr /usr
	fi
}

case "$1" in
	start | status)
		# No-op
		;;
	restart | reload | force-reload)
		echo "Error: argument '$1' not supported" >&2
		exit 3
		;;
	stop)
		do_stop
		;;
	*)
		echo "Usage: $0 start|stop" >&2
		exit 3
		;;
esac

:
