aboutsummaryrefslogblamecommitdiffstats
path: root/main/util-linux/rfkill.initd
blob: 1cc0335e45d6378329408b2850e3b94408426ec6 (plain) (tree)

















































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