#!/bin/sh

# PROVIDE: mounttmpfs
# REQUIRE: cleanvar
# BEFORE:  FILESYSTEMS

. /etc/rc.subr

name="mounttmpfs"
start_cmd="mounttmpfs_start"
stop_cmd=":"

is_mountpoint()
{
	local mp="$1"
	mount | awk '{ print $3 }' | grep -q "^${mp}$"
}

mounttmpfs_start()
{
	if checkyesno tmpfs_var_run; then
		echo -n "Mounting tmpfs at /var/run"
		mount_tmpfs dummy /var/run
		echo "."

		echo "Recreating filesystem hierarchy in /var/run:"
		mtree -deiqU -f /etc/mtree/BSD.var.dist -p /var
		echo "."
	else
		echo -n "Mounting tmpfs at /var/run/shm"
		mount_tmpfs -m 01777 dummy /var/run/shm
		mkdir -p -m 01777 /var/run/shm/tmp
		mkdir -p -m 01777 /var/run/shm/dev
		mkdir -p -m 01777 /var/run/shm/dev/shm
		echo "."
	fi

	if checkyesno tmpfs_tmp; then
		if is_mountpoint "/tmp"; then
			echo "/tmp has been already mounted a filesystem."
		else
			echo -n "Mounting tmpfs at /tmp"
			mount_tmpfs -m 01777 dummy /tmp
			echo "."
		fi
	fi
}

load_rc_config $name
run_rc_command "$1"
