#!/bin/sh
# Begin $rc_base/init.d/modules - Module auto-loading script

# Written by Zack Winkles - winkie@linuxfromscratch.org

. /etc/sysconfig/rc
. $rc_functions

# Assure that the kernel has module support.
[ -e /proc/ksyms -o -e /proc/modules ] || exit 0

case "$1" in
	start)
		# Only try to load modules if the user has actually given us
		# some modules to load.
		if egrep -qv '^(#|$)' /etc/sysconfig/modules 2>/dev/null; then

			# Read in the configuration file.
			exec 9>&0 < /etc/sysconfig/modules

				echo -n "Loading modules:"

				while read module args ; do
					# Ignore comments and blank lines.
					case "$module" in
						""|\#*) continue ;;
					esac

					# Attempt to load the module, making
					# sure to pass any arguments provided.
					modprobe $module $args

					# Print the module name if successful,
					# otherwise take note.
					if [ $? -eq 0 ]; then
						echo -n " $module"
					else
						failedmod="$failedmod $module"
					fi
				done

				# Print a message about successfully loaded
				# modules on the correct line.
				echo ; print_status success

				# Print a failure message with a list of any
				# modules that may have failed to load.
				if [ "$failedmod" ]; then
					echo "Failed to load modules:$failedmod"
					print_status failure
				fi

			exec 0>&9 9>&-

		fi
		;;
	*)
		echo "Usage: $0 {start}"
		exit 1
		;;
esac

# End $rc_base/init.d/modules
