|
|
@ -0,0 +1,51 @@ |
|
|
|
#!/bin/sh |
|
|
|
|
|
|
|
. /lib/functions.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 [ "$(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 |
|
|
|
elif [ "$nomatch" = "1" ]; then |
|
|
|
[ "$ACTION" = "add" ] && { |
|
|
|
/etc/init.d/nut-server start "$cfg" |
|
|
|
} |
|
|
|
[ "$ACTION" = "remove" ] && { |
|
|
|
/etc/init.d/nut-server stop "$cfg" |
|
|
|
} |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
perform_libhid_action() { |
|
|
|
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 |
|
|
|
} |
|
|
|
|
|
|
|
[ -n "$PRODUCT" ] && case "$PRODUCT" in |