#!/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
		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

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