#!/bin/sh

# debugging
#exec >/dev/console
#echo "$0: button=$BUTTON action=$ACTION SEEN=$SEEN"

HOTPLUG_DIR=/etc/hotplug.d/button/
. ${HOTPLUG_DIR}/btn_handlers.sh

. /lib/functions.sh
do_button () {
	local button
	local action
	local handler
	local repeat
	local count
	local min
	local max

	config_get button $1 button
	config_get action $1 action
	config_get handler $1 handler
	config_get min $1 min
	config_get max $1 max
	config_get repeat $1 repeat

	[ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {
		[ -n "$repeat" ] && {
			# clear or bump repeat count
			[ $SEEN -lt 1 ] && count=$(cat /var/run/button-$BUTTON)
			[ "$count" ] || count=0
			count=$((count+1))
			echo -n $count > /var/run/button-$BUTTON
			[ $count -ge $repeat ] && eval $handler
			continue
		}
		[ -z "$min" -o -z "$max" ] && eval $handler
		[ -n "$min" -a -n "$max" ] && {
			[ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler
		}
	}
}

config_load system
config_foreach do_button button
