#!/bin/sh

nut_driver_config() {
	local cfg="$1"
	local nomatch="$2"

	config_get runas "$cfg" runas "nut"
	config_get vendorid "$cfg" vendorid
	config_get productid "$cfg" productid

	[ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && {
		chmod 0660 /dev/"$DEVNAME"
		chown "${runas:-root}":"$(id -gn "${runas:-root}")" /dev/"$DEVNAME"
	}

	if [ "$nomatch" = "1" ]; then
		[ "$ACTION" = "add" ] && {
			/etc/init.d/nut-server start "$cfg"
		}
	elif [ "$(printf "%04x" 0x"$pvendid")" = "$vendorid" ] && \
		[ "$(printf "%04x" 0x"$pprodid")" = "$productid" ]; then
			[ "$ACTION" = "add" ] && {
				/etc/init.d/nut-server start "$cfg"
			}
			[ "$ACTION" = "remove" ] && {
				/etc/init.d/nut-server stop "$cfg"
			}
			found=1
	fi
}

perform_libhid_action() {
	. /lib/functions.sh

	local vendorid productid runas
	local pvendid pprodid found

	pvendid=${PRODUCT%/*}
	pvendid=${pvendid%/*}
	pprodid=${PRODUCT%/*}
	pprodid=${pprodid##*/}

	config_load nut_server
	config_foreach nut_driver_config driver 0
	[ "$found" != "1" ] && config_foreach nut_driver_config driver 1
	/etc/init.d/nut-server start upsd
}

[ -n "$PRODUCT" ] && case "$PRODUCT" in