#! /bin/ash

# simple script that pretends modprobe

set -e

case "$1" in 
	"-r")
		remove=1
		shift
		;;
	# kmod uses this; we don't want kmod
	"-s" | "-k")
		exit 1
		;;
esac

mod=`echo "$1" | sed 's/\.o$//' || :`

if test $remove; then
	# don't use rmmod -r option -- busybox' rmmod lacks it
	rmmod ${mod}
else
	deps=`grep "^${mod}\.o:" /etc/modules.dep | sed "s/^${mod}\.o://" || :`

	# love recursion
	for i in $deps; do modprobe $i; done

	if lsmod | grep -q "^${mod} " ; then
		: ok
	else
		# run load_module (that will ask user to insert disk)
		# with redirected descriptors, as we'll be run from within
		# cardmgr, that captures our input/output
		load_module ${mod} < /dev/console > /dev/console 2> /dev/console
	fi
fi

# vim:ft=sh
