#!/bin/sh

# configuration
. $HOME/.barrc

# alpha
a="#cc"
b="#00"

# default colors
bg="${a}${BG}"
fg="${a}${FG}"
sp="${a}${C5}"
hi="${a}${C6}"

# default geometry
default_geometry() {
width=$(xdpyinfo | awk '/dimensions:/ { print $2}' | cut -c 1-4)
height=24
offy=0
offx=0

echo "${width}x${height}+${offx}+${offy}"
}

GEOM=${GEOM:-$(default_geometry)}

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/pkg/bin"

statusbar() {

desktop() {
	desk_id=$(xprop -root 32c '\t$0' _NET_CURRENT_DESKTOP | cut -f 2)
	w_id=$(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2)
	win=$(xprop -id $w_id '\t$0' _NET_WM_NAME | awk -F '"' '{ print $2 }')
	echo [$desk_id] [$win]
}


host() {
	vendor="$(sysctl machdep.dmi.system-vendor | cut -d "= " -f2)"
	host="$(sysctl machdep.dmi.system-version | cut -d "= " -f2)"
	for i in $vendor $host; do
		[ -z "${i}" ] || echo $i
	done
}

cpu() {
	cpu_temp="$(envstat | grep "cpu0 temperature: " \
	| awk '{print $3}' | cut -d "." -f 1)°C"
	cpu_speed="$(printf "%4s" $(sysctl machdep.cpu.frequency.current \
	| awk '{ print $3 }' | cut -d "." -f 1)) MHz"
	echo $cpu_speed $cpu_temp
}

mem() {
	memtotal="$(($(sysctl -n hw.physmem64) / 1024 / 1024))"
	memused="$(($(vmstat | awk 'END {printf $3}') / 1024))"
	mem="${memused}MB / ${memtotal}MB"
	echo  $mem
}


disk() {
        disk="$(df -h / | awk 'NR==2 {total=$2; used=$3; \
		print used" / "total}')"
	echo $disk
}

network() {
	ifconfig | grep -v 127.0.0.1 | grep -q "inet " || {
		net=$(printf '%s' "none")
		exit 1
	}

	for I in $( ifconfig -l | sed s/lo0//g )
	do
	ifconfig ${I} | grep -q "inet " && {
		net=$(printf '%s'  "(${I}) "
		ifconfig ${I} | grep "inet " | awk '{print $2}' | tr '\n' ' ')
	echo $net
	}
done
}

batt() {
	batt="$(envstat | grep charge: | sed 's/.*(\(.*\))/\1/' | head -1)"

	if envstat | grep -Eq 'connected.*TRUE'; then
		batt_status=$(echo Connected)
	else
		batt_status=$(echo Disconnected)
        fi

	echo $batt "($batt_status)"
}

vol() {
	vol="$(mixerctl -n outputs.master | tr ',' ' ' \
	| awk '{print ($1+$2)/5}')%"
	echo $vol
}

clock() {
	time="$(date +"%I:%M %p")"
	date="$(date +" %a, %b %d")"
#	datetime=$(date '+%d/%m/%Y [%H:%M]')
	echo  $date "@" $time
}

echo %{l}%{F${hi}}$(host) %{F-}%{F${fg}}$(desktop)%{F-}%{c}%{F-}%{r}%{F${sp}}" \
	| "%{F-}%{F${fg}}cpu: $(cpu)%{F-}%{F${sp}}" \
	| "%{F-}%{F${fg}}mem: $(mem)%{F-}%{F${sp}}" \
	| "%{F-}%{F${fg}}net: $(network)%{F-}%{F${sp}}" \
	| "%{F-}%{F${fg}}disk: $(disk)%{F-}%{F${sp}}" \
	| "%{F-}%{F${fg}}batt: $(batt)%{F-}%{F${sp}}" \
	| "%{F-}%{F${fg}}vol: $(vol) %{F-}%{F${sp}}" \
	| "%{F-}%{F${fg}}$(clock)%{F-}%{F${sp}}" "%{F-}
}

while true
 do
   echo "$(statusbar)"
   sleep 1.0

 done |  lemonbar -d -n $NAME -g $GEOM -f $FONT -B $bg
