#!/bin/bash

led=/sys/class/leds/dockstar\:orange\:misc
polli=5
treshold=95
logger -s -p local0.info -t flicker enabled, polling: $polli seconds, active at $treshold percent
mode=none
echo $mode >$led/trigger
data=(`head -n 1 /proc/stat`)
while [ true ]; do
	sleep $polli
	old=(${data[*]})
	data=(`head -n 1 /proc/stat`)
	idle=$((${data[4]} - ${old[4]}))
	all=$(($((${data[1]} - ${old[1]})) + $((${data[2]} - ${old[2]})) + $((${data[3]} - ${old[3]})) + ${idle}))
	pidle=$(($idle * 100 / $all))
#	echo idle: $pidle $mode
	if [ $pidle -ge $treshold ]; then
		if [ $mode != "none" ]; then
			mode=none
			echo $mode >$led/trigger
		fi
	else
		if [ $mode != "timer" ]; then
			mode=timer
			echo $mode >$led/trigger
			#echo $((50 + $pidle)) > $led/delay_on
			echo 50 >$led/delay_on
		fi
		val=$((50 + $pidle * 10))
		if [ $(<$led/delay_off) != $val ]; then
			echo $val>$led/delay_off
#			echo set: $(<$led/delay_off)
		fi
	fi
done

logger -s -p local0.info -t flicker exiting
echo default-on >$led/trigger
