| #!/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 |