diff options
Diffstat (limited to 'user/wpa_supplicant/wpa_supplicant.initd')
-rw-r--r-- | user/wpa_supplicant/wpa_supplicant.initd | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/user/wpa_supplicant/wpa_supplicant.initd b/user/wpa_supplicant/wpa_supplicant.initd new file mode 100644 index 000000000..988b267d1 --- /dev/null +++ b/user/wpa_supplicant/wpa_supplicant.initd @@ -0,0 +1,53 @@ +#!/sbin/openrc-run +# Copyright (c) 2009 Roy Marples <roy@marples.name> +# All rights reserved. Released under the 2-clause BSD license. + +command=/sbin/wpa_supplicant +: ${wpa_supplicant_conf:=/etc/wpa_supplicant/wpa_supplicant.conf} +wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if +command_args="$wpa_supplicant_args -B -c$wpa_supplicant_conf $wpa_supplicant_if" +name="WPA Supplicant Daemon" + +depend() +{ + need localmount + use logger dbus + after bootmisc modules + before dns dhcpcd net + keyword -shutdown +} + +find_wireless() +{ + local iface= + for iface in /sys/class/net/*; do + if [ -e "$iface"/wireless -o -e "$iface"/phy80211 ]; then + echo "${iface##*/}" + return 0 + fi + done + + return 1 +} + +append_wireless() +{ + local iface= i= + + iface=$(find_wireless) + if [ -n "$iface" ]; then + for i in $iface; do + command_args="$command_args -i$i" + done + else + eerror "Could not find a wireless interface" + fi +} + +start_pre() +{ + case " $command_args" in + *" -i"*) ;; + *) append_wireless;; + esac +} |