aboutsummaryrefslogtreecommitdiffstats
path: root/main/openrc/modules.initd
blob: c3abde1eaa662344e797f6a2b09f456ce18b853b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/sbin/openrc-run

description="Loads a user defined list of kernel modules."

depend()
{
	before hwclock hwdrivers
	keyword -openvz -prefix -vserver -lxc
}

start() {
	yesno $rc_verbose && verbose=yes

	ebegin "Loading modules"
	echo
	for f in /lib/modules-load.d/*.conf \
		/usr/lib/modules-load.d/*.conf; do

		if ! [ -f "$f" ]; then
			continue
		fi

		if  [ -f /etc/modules-load.d/"${f##*/}" ]; then
			veinfo "Ignoring $f due to /etc/modules-load.d/${f##*/}"
			continue
		fi

		if [ -f /run/modules-load.d/"${f##*/}" ]; then
			veinfo "Ignoring $f due to /run/modules-load.d/${f##*/}"
			continue
		fi

		veinfo "Processing $f"
		sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \
			| while read module args; do
			modprobe -q $module $args
		done
	done

	for f in /etc/modules; do
		if [ ! -f "$f" ]; then
			continue
		fi

		veinfo "Processing $f"
		sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \
			| while read module args; do
			modprobe -q $module $args
		done
	done

	for f in /etc/modules-load.d/*.conf; do
		if [ ! -f "$f" ]; then
			continue
		fi

		if [ -f /run/modules-load.d/"${f##*/}" ]; then
			veinfo "Ignoring $f due to /run/modules-load.d/${f##*/}"
			continue
		fi

		veinfo "Processing $f"
		sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \
			| while read module args; do
			modprobe -q $module $args
		done
	done

	for f in /run/modules-load.d/*.conf; do
		if [ ! -f "$f" ]; then
			continue
		fi

		veinfo "Processing $f"
		sed -e 's/\#.*//g' -e '/^[[:space:]]*$/d' < "$f" \
			| while read module args; do
			modprobe -q $module $args
		done
	done
	eend $?
}