openwrt-packages/utils/sane-backends/files/saned.hotplug

28 lines
745 B
Bash
Executable File

#!/bin/sh
[ "$ACTION" = "add" ] || exit 0
[ "$DEVTYPE" = "usb_device" ] || exit 0
SANE_GROUP=scanner
grep -q -E "^$SANE_GROUP:" /etc/group || exit 0
# Filter SANE known devices
vendor_product="${PRODUCT%/*}"
vendorid="$(printf '%04x' "0x0${vendor_product%/*}")"
productid="$(printf '%04x' "0x0${vendor_product#*/}")"
grep -s -x -F -q "$productid" "/usr/share/sane/$vendorid"-*.usbid || exit 0
grant() {
logger -t "hotplug(usb/20-saned)" "Granting $1 to '$2' for group '$SANE_GROUP'"
chgrp "$SANE_GROUP" "$2"
chmod "$1" "$2"
}
# Needed by script /usr/bin/saned to rebind USB devices back to usblp after use
usblp_bind="/sys/bus/usb/drivers/usblp/bind"
if [ -e "$usblp_bind" ]; then
grant g+w "$usblp_bind"
fi
grant g+rw "/dev/$DEVNAME"