1#!/bin/sh
2#
3# Add udev rules for ZoL to the initrd.
4#
5
6PREREQ="udev"
7PREREQ_UDEV_RULES="60-zvol.rules 69-vdev.rules"
8COPY_EXEC_LIST="/lib/udev/zvol_id /lib/udev/vdev_id"
9
10# Generic result code.
11RC=0
12
13case $1 in
14prereqs)
15	echo "$PREREQ"
16	exit 0
17	;;
18esac
19
20for ii in $COPY_EXEC_LIST
21do
22	if [ ! -x "$ii" ]
23	then
24		echo "Error: $ii is not executable."
25		RC=2
26	fi
27done
28
29if [ "$RC" -ne 0 ]
30then
31	exit "$RC"
32fi
33
34. /usr/share/initramfs-tools/hook-functions
35
36mkdir -p "$DESTDIR/lib/udev/rules.d/"
37for ii in $PREREQ_UDEV_RULES
38do
39	if [ -e "/etc/udev/rules.d/$ii" ]
40	then
41		cp -p "/etc/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
42	elif [ -e "/lib/udev/rules.d/$ii" ]
43	then
44		cp -p "/lib/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
45	else
46		echo "Error: Missing udev rule: $ii"
47		echo "       This file must be in the /etc/udev/rules.d or /lib/udev/rules.d directory."
48		exit 1
49	fi
50done
51
52for ii in $COPY_EXEC_LIST
53do
54	copy_exec "$ii"
55done
56
57if [ -f '/etc/default/zfs' -a -r '/etc/default/zfs' ]
58then
59	mkdir -p "$DESTDIR/etc/default"
60	cp -a '/etc/default/zfs' "$DESTDIR/etc/default/"
61fi
62
63if [ -d '/etc/zfs' -a -r '/etc/zfs' ]
64then
65	mkdir -p "$DESTDIR/etc"
66	cp -a '/etc/zfs' "$DESTDIR/etc/"
67fi
68