aboutsummaryrefslogtreecommitdiffstats
path: root/main/util-linux/rfkill.initd
blob: 1cc0335e45d6378329408b2850e3b94408426ec6 (plain) (blame)
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
#!/sbin/openrc-run

description="Save/Restore rfkill configuration"

rfkillstatedir=/var/lib/rfkill

extra_commands="save restore"

depend() {
	need localmount
	after bootmisc modules isapnp coldplug hotplug
}

restore() {
	ebegin "Restoring rfkill configuration"
	for type in "$rfkillstatedir"/*; do
		status=$(cat "$type")
		type=$(basename "$type")
		rfkill "$status" "$type"
	done
	eend 0
}

save() {
	ebegin "Storing rfkill configuration"
	mkdir -p "$rfkillstatedir"
	OLDIFS="$IFS"
	IFS=$'\n'
	for line in $(rfkill -r -n); do
		type=$(echo "$line" | cut -d' ' -f2)
		status=$(echo "$line" | cut -d' ' -f4 | tr -d 'ed')
		echo "$status" > "$rfkillstatedir"/"$type"
	done
	IFS="$OLDIFS"
	eend 0
}

start() {
	if [ "${RESTORE_ON_START}" = "yes" ]; then
		restore
	fi
	return 0
}

stop() {
	if [ "${SAVE_ON_STOP}" = "yes" ]; then
		save
	fi
	return 0
}