#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-src/rc-scripts/init.d/localmount,v 1.29.4.3 2005/05/15 20:00:31 vapier Exp $

depend() {
	need checkfs
}

start() {
	# Mount local filesystems in /etc/fstab.
	ebegin "Mounting local filesystems"
	mount -at noproc,noshm,no${NET_FS_LIST// /,no} >/dev/null
	eend $? "Some local filesystem failed to mount"

	# Make sure we insert usbcore if its a module
	if [[ -f /proc/modules ]] ; then
		# >/dev/null to hide errors from non-USB users
		modprobe usbcore &> /dev/null
	fi
	
	# Check what USB fs the kernel support.  Currently
	# 2.5+ kernels, and later 2.4 kernels have 'usbfs',
	# while older kernels have 'usbdevfs'.
	local usbfs=$(grep -Fow usbfs /proc/filesystems ||
		grep -Fow usbdevfs /proc/filesystems)

	if [[ -n ${usbfs} ]] && \
	   [[ -e /proc/bus/usb && ! -e /proc/bus/usb/devices ]]
	then
		ebegin "Mounting USB device filesystem (${usbfs})"
#		# Fetch usb gid from /etc/group; fixes bug 35860
#		usbgid=$(awk -F: '/^usb:/{print $3; exit}' /etc/group)
#		mount -t ${usbfs} ${usbgid:+-o devmode=0664,devgid=$usbgid}
		mount -t ${usbfs} usbfs /proc/bus/usb &>/dev/null
		eend $? "Failed to mount USB device filesystem"
	fi

	# Swap on loopback devices, and other weirdnesses
	ebegin "Activating (possibly) more swap"
	/sbin/swapon -a
	eend $?

	# Start dm-crypt mappings, if any
	start_addon dm-crypt
}

# vim:ts=4
