kopia lustrzana https://gitlab.com/sane-project/backends
Added new hotplug/hotplug-ng hook with scripts and documentation.
rodzic
98f01c7975
commit
309228e9db
|
@ -1,3 +1,7 @@
|
|||
2005-02-21 Julien Blache <jb@jblache.org>
|
||||
* tools/hotplug-ng: added new hotplug/hotplug-ng hook, with
|
||||
scripts and documentation.
|
||||
|
||||
2005-02-20 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
||||
|
||||
* doc/descriptions/unsupported.desc: Removed Genius
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
hotplug/hotplug-ng hook for sane-backends
|
||||
-----------------------------------------
|
||||
|
||||
The libsane.hotplug script is intended to replace the existing hotplug scripts,
|
||||
as those won't be usable with the new hotplug-ng. The libsane.hotplug script
|
||||
works with both hotplug and hotplug-ng.
|
||||
|
||||
This script is provided in the hope that it will be useful, simpler, faster and
|
||||
more extensible than the current usermap approach.
|
||||
|
||||
|
||||
INSTALLATION
|
||||
------------
|
||||
|
||||
Install libsane.hotplug in /etc/hotplug/usb, and make it executable.
|
||||
|
||||
Create the directory /etc/sane.d/hotplug, then run the convert-usermap.sh
|
||||
script on libsane.usermap to produce the libsane.db file:
|
||||
$ ./convert-usermap.sh libsane.usermap
|
||||
|
||||
The libsane.usermap file can be found in the tools/hotplug directory; for now
|
||||
the usermap file remains the authoritative source for the list of USB scanners.
|
||||
|
||||
|
||||
FILE FORMAT
|
||||
-----------
|
||||
|
||||
The libsane.db contains 5 tab-separated fields:
|
||||
|
||||
0xVVVV<tab>0xPPPP<tab>root:scanner<tab>0660<tab>optional_script
|
||||
|
||||
Fields:
|
||||
- vendor ID
|
||||
- product ID
|
||||
- ownership (user:group)
|
||||
- permissions
|
||||
- path of an optional script to run (it can be omitted)
|
||||
|
||||
|
||||
USAGE
|
||||
-----
|
||||
|
||||
When run by hotplug/hotplug-ng, the libsane.hotplug script will grep for
|
||||
^0xVVVV[[:space:]]0xPPPP in /etc/sane.d/hotplug/*.db. If a match is found,
|
||||
the settings are applied to the device.
|
||||
|
||||
The optional script is then run; this script can access the environment
|
||||
variables set by hotplug/hotplug-ng (see the documentation). The libsane.hotplug
|
||||
script will also set and export the DEVVID and DEVPID variables, containing the
|
||||
vendor and device ID of the scanner (of the form VVVV and PPPP).
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Converts libsane.usermap to the new SANE hotplug db
|
||||
#
|
||||
|
||||
if [ ! -e libsane.db ]; then
|
||||
cat > libsane.db <<EOF
|
||||
# This file is part of the SANE distribution
|
||||
#
|
||||
# USB Vendor/Product IDs for scanners supported by SANE
|
||||
#
|
||||
# 0xVVVV<tab>0xPPPP<tab>root:scanner<tab>0660<tab>[/usr/local/bin/foo.sh]
|
||||
#
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
cat "$1" | { while read map; do
|
||||
if $(echo "$map" | grep -q ^# > /dev/null); then
|
||||
echo $map >> libsane.db
|
||||
else
|
||||
set $map
|
||||
|
||||
echo -e "$3\t$4\troot:scanner\t0660\t" >> libsane.db
|
||||
fi
|
||||
done }
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# This file is part of the SANE distribution.
|
||||
# Hotplug USB hook for SANE
|
||||
|
||||
if [ "$ACTION" != "add" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
DEVVID=$(printf %4s $(echo $PRODUCT | cut -d'/' -f1) | tr ' ' 0)
|
||||
DEVPID=$(printf %4s $(echo $PRODUCT | cut -d'/' -f2) | tr ' ' 0)
|
||||
|
||||
DEVCONF=$(grep -i ^0x$DEVVID\t0x$DEVPID /etc/sane.d/hotplug/*.db 2> /dev/null)
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
set $DEVCONF
|
||||
|
||||
chown $3 $DEVICE && chmod $4 $DEVICE
|
||||
|
||||
if [ ! -z $5 -a -x $5 ]; then
|
||||
export DEVVID
|
||||
export DEVPID
|
||||
exec $5
|
||||
fi
|
||||
|
||||
exit 0
|
Ładowanie…
Reference in New Issue