#!/bin/sh
# /etc/hotplug/usb/usb-storage
# by Dwayne C. Litzenberger
# Public Domain.  No Warranty.
# Last Updated: Tue, 09 Mar 2004 21:42:23 -0600

case "$ACTION" in
add)
	umask 022
	d=/sys/."$DEVPATH"/host[0-9]*/[0-9]*:0:0:0/block/sd[a-z]1
	# Quotes around $d were omitted  below so that glob expansion takes
	# place.
	[ \! -d $d ] && sleep 0.5 && [ \! -d $d ] && sleep 1 && \
		[ \! -d $d ] && sleep 2 && [ \! -d $d ] && sleep 4
	if ! [ -d $d ] ; then
		# Couldn't find USB device
		exit 1
	fi
	devicename=`basename $d`

	mkdir -p /mnt/usb-storage/"$devicename"
	
	mount -t vfat /dev/"$devicename" /mnt/usb-storage/"$devicename" -o rw,sync,nosuid,nodev,umask=000 || \
	mount -t auto /dev/"$devicename" /mnt/usb-storage/"$devicename" -o rw,sync,nosuid,nodev
	
	:> "$REMOVER"
	echo "#!/bin/sh" >> "$REMOVER"
	echo "exec /etc/hotplug/usb/usb-storage $devicename" >> "$REMOVER"
	chmod +x "$REMOVER"

	;;
remove)
	umount /mnt/usb-storage/"$1"
	rmdir /mnt/usb-storage/"$1"
	while [ -d /mnt/usb-storage/"$1" ] ; do
		sleep 2
		umount /mnt/usb-storage/"$1"
		rmdir /mnt/usb-storage/"$1"
	done
	rmdir /mnt/usb-storage || true
	;;
esac
