#!/bin/sh usblp_driver="/sys/bus/usb/drivers/usblp" inuse="" if [ -e /sys/bus/usb/devices ]; then for usbdev_driver in /sys/bus/usb/devices/*/driver; do [ -e "$usbdev_driver" ] || continue [ "$(readlink -f "$usbdev_driver")" = "$usblp_driver" ] || continue usbdev="${usbdev_driver%/*}" inuse="$inuse ${usbdev##*/}" done fi /usr/lib/sane/saned "$@" err=$? for usbdev in $inuse; do [ -e "/sys/bus/usb/devices/$usbdev/driver" ] && continue logger -t saned "binding device $usbdev back to usblp..." printf '%s' "$usbdev" > "$usblp_driver/bind" done exit $err