aboutsummaryrefslogtreecommitdiff
path: root/linux-bin/wpa
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2024-01-20 12:31:58 -0500
committerMitchell Riedstra <mitch@riedstra.dev>2024-01-20 12:31:58 -0500
commite2a0cf2a79b43f9f86b74270f3d96fe300687804 (patch)
treea87edf55f81e78f4d0968d6f006562090260e068 /linux-bin/wpa
parentec83443853116b07f18fbef8c6de31cf157939a0 (diff)
downloaddotfiles-e2a0cf2a79b43f9f86b74270f3d96fe300687804.tar.gz
dotfiles-e2a0cf2a79b43f9f86b74270f3d96fe300687804.tar.xz
Cleanup unused files and code.
Diffstat (limited to 'linux-bin/wpa')
-rwxr-xr-xlinux-bin/wpa60
1 files changed, 60 insertions, 0 deletions
diff --git a/linux-bin/wpa b/linux-bin/wpa
new file mode 100755
index 0000000..0ffbc14
--- /dev/null
+++ b/linux-bin/wpa
@@ -0,0 +1,60 @@
+#!/bin/sh
+set -e
+# manual configuration of wifi made a little bit easier with wpa_supplicant
+session="wpa"
+t=3
+interface=
+nwid=
+wpakey=
+
+help() {
+cat <<EOF
+$0 [-i <interface>] [-n <network_name>] [-p <password>]
+EOF
+exit 1;
+}
+
+while [ $# -gt 0 ] ; do case $1 in
+ -i|if) interface="$2"; shift ; shift ;;
+ -n|nwid) nwid="$2"; shift ; shift ;;
+ -p|wpakey) wpakey="$2"; shift ; shift ;;
+ *) help ;;
+esac ; done
+
+err=0
+for _v in interface nwid wpakey ; do
+ eval v="\$$_v";
+ if [ -z "$v" ] ; then
+ echo "$_v cannot be empty"
+ err=1
+ fi
+done
+if [ $err -eq 1 ] ; then exit 1 ; fi
+
+
+wpakey="$(echo "$wpakey" | sed -e's/"/\\"/g')"
+
+conf_f="$(mktemp /dev/shm/wpa.XXXX)"
+trap 'rm -f $conf_f; exit 1;' EXIT INT
+cat > "$conf_f" <<EOF
+network={
+ ssid="$nwid"
+ scan_ssid=1
+ key_mgmt=WPA-PSK
+ psk="$wpakey"
+}
+EOF
+
+
+if tmux ls -F '#{session_name}' | grep -q "^$session\$" ; then
+ exec tmux att -t "$session"
+fi
+
+tmux new-session -s "$session" \;\
+ send-keys -t "${session}:0" "sudo wpa_supplicant -i \"$interface\" -c \"$conf_f\"" \;\
+ send-keys -t "${session}:0" Enter \;\
+ new-window -n "dhclient" -t 1 \;\
+ send-keys -t "${session}:1" "sleep $t ; sudo dhclient -d -i \"$interface\"" \;\
+ send-keys -t "${session}:1" Enter \;\
+ select-window -t "${session}:0" \;\
+