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>
|
2005-02-20 Henning Meier-Geinitz <henning@meier-geinitz.de>
|
||||||
|
|
||||||
* doc/descriptions/unsupported.desc: Removed Genius
|
* 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