#!/bin/sh
# script to display the network state in dwmblocks

wifi=$(iwgetid -r)
upstate=$(ip a | grep BROADCAST,MULTICAST | awk '{print $9}')
if [ -z "$wifi" ]; then
    if echo "$upstate" | grep -q "DOWN"; then
        if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | \
            sed 's/unblocked//g' | uniq | wc -l)" -eq "1" ]; then
                if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | \
                    sed 's/unblocked//g' | grep . | wc -l)" -gt "0" ]; then
                        echo "📡 off"; exit
            fi
        elif rfkill list wifi | grep 'Soft blocked' | awk '{print $3}' | \
            grep -q 'yes'; then
                echo "📶 off"; exit
        fi
    fi
    printf "%s\\n" "🔌 $upstate"; exit
    else
        # alternatively: diplay percentage
        # awk '/^\s*w/ { print "📶", int($3 * 100 / 70) "%" }' \
        # /proc/net/wireless | sed 's/100/99/'

		percent=$(awk '/^\s*w/ { print int($3 * 100 / 70) }' \
                  /proc/net/wireless | head -n 1)
		if [ "$percent" -gt 80 ]; then
			echo "🟩🟩🟩🟩🟩"
		elif [ "$percent" -gt 60 ]; then
			echo "🟩🟩🟩🟩🟧"
		elif [ "$percent" -gt 40 ]; then
			echo "🟩🟩🟩🟧🟧"
		elif [ "$percent" -gt 20 ]; then
			echo "🟩🟩🟧🟧🟧"
		else
			echo "🟩🟧🟧🟧🟧"
		fi
    fi
