summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorJames Rayner <james@archlinux.org>2007-11-10 00:43:57 +0100
committerJames Rayner <james@archlinux.org>2007-11-10 00:43:57 +0100
commite9f9e4d54cb3afb6d78a12e85035a24d346c381d (patch)
treeb3971b8737ab56b6055d2440f5b78c74fc2adb25 /contrib
downloadnetctl-e9f9e4d54cb3afb6d78a12e85035a24d346c381d.tar.gz
netctl-e9f9e4d54cb3afb6d78a12e85035a24d346c381d.tar.xz
Initial Import
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/netcfg-wireless-auto43
1 files changed, 43 insertions, 0 deletions
diff --git a/contrib/netcfg-wireless-auto b/contrib/netcfg-wireless-auto
new file mode 100755
index 0000000..036cd12
--- /dev/null
+++ b/contrib/netcfg-wireless-auto
@@ -0,0 +1,43 @@
+#! /bin/bash
+# Originally contributed by Neuro: http://bbs.archlinux.org/viewtopic.php?pid=278148#p278148
+
+. /usr/lib/network/network.subr
+. /usr/lib/network/wireless.subr
+
+# wifi_auto
+# autoconnect wireless interface
+# $1 - wireless interface
+
+wifi_auto()
+{
+ INTERFACE=$1; RETRIES=6
+
+ while read essid; do
+ # awfully long grep that finds a file which has:
+ # CONNECTION=wireless, ESSID=$essid, INTERFACE=$INTERFACE
+ profile=$(grep -rlP "CONNECTION=\"?wireless\"?(\n|.)*INTERFACE=\"?$INTERFACE\"?(\n|.)*ESSID=\"?$essid\"?" $PROFILE_DIR/|head -n 1)
+ if [[ -n "$profile" ]]; then
+ break # If we found a profile, use it.
+ fi
+ done < "$(list_networks $IFACE)"
+
+ # If there's a profile, connect, else fail.
+ if [[ -n "$profile" ]]; then
+ netcfg2 $(basename $profile)
+ exit $?
+ else
+ err "No network found"
+ exit 1
+ fi
+}
+
+if [[ $(id -u) -ne 0 ]]; then
+ err "This script needs to be run with root priviledges"
+ exit 1
+fi
+if [[ -z $1 ]]; then
+ err "Please supply an interface to connect"
+ exit 1
+fi
+
+wifi_auto $1