#!/bin/sh

#-------------------------------------------------------
# Bozza di monitor basato su acpi
# per consigli e/o insulti scrivi a shammash@renomo.com
#-------------------------------------------------------
# Percentuale di allarme
ALARM_PERC=30


ac_adapter() {
	if [ -e /proc/acpi/ac_adapter/ACAD/state ]; then
		ACAD_STAT=`awk '{print $2}' /proc/acpi/ac_adapter/ACAD/state`
		if [ $ACAD_STAT = on-line ]; then
			echo "Computer collegato alla rete elettrica"
		  else
		  	echo "Computer NON collegato alla rete elettrica"
		fi
	fi
}



battery() {
	BAT_PATH=/proc/acpi/battery/
	for bat in `ls $BAT_PATH`;
		do
			BAT_PRES=`grep -e present: /proc/acpi/battery/$bat/state | awk '{print $2}'`
			if [ $BAT_PRES = yes ]; then
				BAT_STAT=`grep -e "charging state" /proc/acpi/battery/$bat/state | awk '{ print $3 }'`
				case $BAT_STAT in
					unknown)
						echo "Batteria $bat carica"
						;;
					charging)
						BAT_REM=`grep -e "remaining capacity" /proc/acpi/battery/$bat/state | awk '{ print $3 }'`
						BAT_FUL=`grep 'last full capacity' /proc/acpi/battery/$bat/info | awk '{ print $4 }'`
						BAT_PERC=`echo "scale=0;( $BAT_REM * 100 / $BAT_FUL )" | bc`
						echo "Batteria $bat carica al $BAT_PERC %"
						;;
					discharging)
						BAT_REM=`grep -e "remaining capacity" /proc/acpi/battery/$bat/state | awk '{ print $3 }'`
						BAT_FUL=`grep 'last full capacity' /proc/acpi/battery/$bat/info | awk '{ print $4 }'`
						BAT_PERC=`echo "scale=0;( $BAT_REM * 100 / $BAT_FUL )" | bc`
						if [ $BAT_PERC -le $ALARM_PERC ]; then
							echo -e "\aBatteria $bat quasi scarica ( $BAT_PERC % )"
						  else
						  	echo "Batteria $bat carica al $BAT_PERC %"
						fi
						;;
					*)
						echo "Questo e' troppo anche per me!"
						;;
				esac
			fi
		done
}



thermal_zone() {
		echo -e "\nTemperatura CPU: `cat /proc/acpi/thermal_zone/THRM/temperature | awk '{print $2}'` C "
}


ac_adapter
battery
thermal_zone

while [ TRUE ] ;
	do
		clear
		ac_adapter
		battery
		thermal_zone
		sleep 5
	done
