#!/bin/sh
# Copyright (C) 2011, 2012 O.S. Systems Software LTDA.
# Licensed on MIT

udev_shutdown_hook_handler() {
	status=$1
	module=$2
	if [ "$status" = "pre" ] && [ "$module" = "finish" ]; then
		udevadm settle
		killall `basename $_UDEV_DAEMON` 2>/dev/null
	fi
}

udev_daemon() {
	OPTIONS="/sbin/udev/udevd /sbin/udevd /lib/udev/udevd /lib/systemd/systemd-udevd"

	for o in $OPTIONS; do
		if [ -x "$o" ]; then
			echo $o
			return 0
		fi
	done

	return 1
}

_UDEV_DAEMON=`udev_daemon`

udev_enabled() {
	if [ -z "$_UDEV_DAEMON" ]; then
		msg "WARNING: Cannot find the udev daemon; daemon will not be started in initramfs."
		return 1
	fi

	return 0
}

udev_run() {
	add_module_pre_hook "udev_shutdown_hook_handler"

	mkdir -p /run
	mkdir -p /var/run

	# Workaround if console=null, systemd-udevd needs valid stdin, stdout and stderr to work
	sh -c "exec 4< /dev/console" || { exec 0> /dev/null; exec 1> /dev/null; exec 2> /dev/null; }

	$_UDEV_DAEMON --daemon
	udevadm trigger --action=add
	udevadm settle
}
