#!/bin/sh

# Prints your local ip address, if you are connected both via wireless & ethernet then the ethernet ip is printed

# by github.com/klewer-martin

estatus="$(cat /sys/class/net/e*/operstate)"
wstatus="$(cat /sys/class/net/w*/operstate)"

if [ "$estatus" = "down" ]; then
	if [ "$wstatus" = "down" ]; then
		ip="Disconnected"; icon="🌐"
	else
		ip=$(ip -o a | awk '/: w.*.inet .*/ { print $4 }' | sed 's/\// /' | awk '{ print $1 }')
		icon="📡"
	fi;
else
	ip=$(ip -o a | awk '/: e.*.inet .*/ { print $4 }' | sed 's/\// /' | awk '{ print $1 }')
	icon="🌐"
fi;

case $icon in
	🌐) speed=$(cat /sys/class/net/e*/speed);;
	📡) speed=$(cat /proc/net/wireless | awk '/wlp*/ { $3=substr($3, 0, length($3) - 1); $3=int($3 * 100 / 70); print $3 }');;
esac

case $speed in
	-1)
		color="^c#FF0000^";;
	[0-2][0-9])
		color="^c#FF0000^";;
	[2-5][0-9])
		color="^c#FFFF00^";;
	[6-7][0-9] | 100)
		color="^c#00FF00^";;
esac

[ -z $ip ] && printf "%s %s\n" "$icon" "Connecting" && exit

printf "%s %s" "$icon" "$ip"
