#WIFI Version 2.0

WIFILE=~/.wifi
WIFACE=eth0

if [ -z $1 ]
then
	wifi $(cat $WIFILE|awk -F, '{print $1}'|dmenu -b) 
	exit 0
fi

PROFLE_NAME=$(cat $WIFILE|grep $1|awk -F, '{print $1}')
ESSID_VALUE=$(cat $WIFILE|grep $1|awk -F, '{print $2}')
WEP_KEY_VAL=$(cat $WIFILE|grep $1|awk -F, '{print $3}')
WPA_KEY_LOC=$(cat $WIFILE|grep $1|awk -F, '{print $4}')

#PROFILE HANDLING
if [ $1 == $PROFLE_NAME ]
then
	echo "Profile match!"
	ESSID=$ESSID_VALUE
else
	echo "Trying $1 for the essid. Are you sure your spelling is correct?"
	echo "If you connect to this access point often, add the information in ~/.wifi"
	ESSID=$1
fi

#WEP HANDLING
if [ -z $WEP_KEY_VAL ]
then
	echo "According to the profile, this AP has no WEP encryption."
else
	echo "Poor security is better than no security."
	WEP="enc $WEP_KEY_VAL"
fi

#WPA HANDLING
if [ -z $WPA_KEY_LOC ]
then
	echo "According to the profile, this AP has no WPA encryption."
else
	sudo wpa_supplicant -i$WIFACE -c$WPA_KEY_LOC&
fi

#MESH HANDLING(XOs only)
if [ -z $1 ]
then
	exit 0
elif [ $1 == mesh ]
then
	sudo iwconfig $WIFACE mode ad-hoc essid mesh
	sudo iwconfig msh0 channel 6
	sudo ifconfig msh0 $2
	sudo echo "mesh-up: this node IP address is $2"
else
	sudo iwconfig $WIFACE mode managed essid $ESSID $WEP
	sudo dhclient -r $WIFACE&>/dev/null
	sudo dhclient $WIFACE&>/dev/null
fi

CUR_ESSID=$(/sbin/iwconfig $WIFACE|grep ESSID|awk '{print $4}'|sed s/ESSID://)
LINK_QUAL=`iwconfig $WIFACE|grep Quality|awk '{print $2}'|sed -e "s/.*Quality=//"`
CUR_IPADR=`/sbin/ifconfig $WIFACE|grep "inet addr"|sed -e "s/.*inet addr://"|sed -e "s/Bcast.*//"`
echo $WIFACE: $CUR_ESSID $LINK_QUAL"  "IP: $CUR_IPADR

#See LICENSE file for copyright and license details
