summaryrefslogtreecommitdiffstats
path: root/btc/mining/bin/ensure-wlan0
diff options
context:
space:
mode:
authoruser <user@bergwerk>2011-07-09 07:12:45 +0000
committeruser <user@bergwerk>2011-07-09 07:12:45 +0000
commit4be9983acfdf35e4cfe54dc116163f1ec392f3a9 (patch)
tree9fbe3a73fae821c42989d3f5b708cfa140544a2b /btc/mining/bin/ensure-wlan0
parente03b7fc183deb56cf71eb9095257356d4c2c54dc (diff)
enable-wlan0: handle the nightmare applet
Diffstat (limited to 'btc/mining/bin/ensure-wlan0')
-rwxr-xr-xbtc/mining/bin/ensure-wlan032
1 files changed, 20 insertions, 12 deletions
diff --git a/btc/mining/bin/ensure-wlan0 b/btc/mining/bin/ensure-wlan0
index 92839a13..77587156 100755
--- a/btc/mining/bin/ensure-wlan0
+++ b/btc/mining/bin/ensure-wlan0
@@ -6,20 +6,28 @@ if test "${nosudo-false}" != true -a `id -u` != 0; then
exit 23 # go to hell
fi
-if ! ifconfig wlan0 | grep -q 'inet addr'; then
- if ! grep -q wlan0 /etc/network/interfaces; then
- cat >> /etc/network/interfaces <<EOF
-# generated by rc.local
-auto wlan0
-iface wlan0 inet dhcp
-wpa_conf /etc/wpa_supplicant/wpa_supplicant.conf
-EOF
+has_internet() {
+ curl -sS google.com >/dev/null
+}
+
+if ! has_internet; then
+
+ ## get rid of the nightmare applet
+ pkill -9 nm-applet
+ if test -x "`type -p nm-applet`"; then
+ rm -vf "`type -p nm-applet`"
fi
- beep -l 50 -f 2000; /etc/init.d/network-manager restart
- beep -l 50 -f 2000; ifdown wlan0
- beep -l 50 -f 2000; ifup wlan0
- if ifconfig wlan0 | grep -q 'inet addr'; then
+ beep -l 50 -f 2000; pkill wpa_supplicant
+ beep -l 50 -f 2000; wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf &
+ while ! wpa_cli status | grep -q wpa_state=COMPLETED; do
+ beep -l 50 -f 2000 -D 50 -n -l 50 -f 2000
+ sleep 1
+ done
+ beep -l 50 -f 2000; dhcpcd -x wlan0
+ beep -l 50 -f 2000; dhcpcd wlan0
+ #echo nameserver 8.8.8.8 >/etc/resolv.conf
+ if has_internet; then
beep -l 50 -f 2000 -n -l 100 -f 3000
else
beep -l 50 -f 2000 -n -l 100 -f 1000