#!/bin/sh
########################################################################
# Begin $rc_base/init.d/udev_retry
#
# Description : Udev cold-plugging script (retry)
#
# Authors     : Alexander E. Patrakov
#
# Version     : 00.02
#
# Notes       :
#
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}

case "${1}" in
	start)
		boot_mesg "Retrying failed uevents, if any..."

		# From Debian: "copy the rules generated before / was mounted
		# read-write":
		for file in /dev/.udev/tmp-rules--*; do
			dest=${file##*tmp-rules--}
			[ "$dest" = '*' ] && break
			cat $file >> /etc/udev/rules.d/$dest
			rm -f $file
		done

		# Re-trigger the failed uevents in hope they will succeed now
		/sbin/udevadm trigger --type=failed
		
		# Now wait for udevd to process the uevents we triggered
		/sbin/udevadm settle
		evaluate_retval
		;;

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

# End $rc_base/init.d/udev_retry
