#!/bin/sh

[ "$OMR_TRACKER_PREV_STATUS" = "$OMR_TRACKER_STATUS" ] && exit 0

set_leds() {
	local cfg=$1
	config_get trigger $cfg trigger
	[ "$trigger" != "proxy" ] && return
	config_get sysfs $cfg sysfs
	config_get proxy_status $cfg proxy_status
	# LuCI's LED page stores "up" (lit while up) and "down" (lit while
	# down); "on" and "off" are what this checked alone, so a LED set there
	# never changed
	if [ "$proxy_status" = "down" ] || [ "$proxy_status" = "off" ]; then
		if [ "$OMR_TRACKER_STATUS" = "ERROR" ]; then
			echo 'default-on' > /sys/class/leds/${sysfs}/trigger
		else
			echo 'none' > /sys/class/leds/${sysfs}/trigger
		fi
	elif [ "$proxy_status" = "up" ] || [ "$proxy_status" = "on" ]; then
		if [ "$OMR_TRACKER_STATUS" = "ERROR" ]; then
			echo 'none' > /sys/class/leds/${sysfs}/trigger
		else
			echo 'default-on' > /sys/class/leds/${sysfs}/trigger
		fi
	fi
}

config_load system
config_foreach set_leds led