Convert bash scripts to more generic shell scripts. This removes the strict bash dependency and the scripts should now run with any posix shell. Also fix the issues reported by shellcheck while at it.
63 lines
2.3 KiB
Bash
Executable File
63 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library; if not, write to the
|
|
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
# Boston, MA 02110-1301 USA
|
|
#
|
|
#
|
|
# $Id$
|
|
#
|
|
# /etc/hotplug/usb/usbcam
|
|
#
|
|
# Sets up newly plugged in USB camera so that the user who owns
|
|
# the console according to pam_console can access it from user space
|
|
#
|
|
# Note that for this script to work, you'll need all of the following:
|
|
# a) a line in the file /etc/hotplug/usermap that corresponds to the
|
|
# camera you are using. You can get the correct lines for all cameras
|
|
# supported by libgphoto2 by running
|
|
# $ print-camera-list usb-usermap usbcam
|
|
# b) a setup using pam_console creates the respective lock files
|
|
# containing the name of the respective user. You can check for that
|
|
# by executing "echo `cat /var/{run,lock}/console.lock`" and
|
|
# verifying the appropriate user is mentioned somewhere there.
|
|
# c) a Linux kernel supporting hotplug and usbdevfs
|
|
# d) the hotplug package (http://linux-hotplug.sourceforge.net/)
|
|
#
|
|
# In the usermap file, the first field "usb module" should be named
|
|
# "usbcam" like this script.
|
|
#
|
|
|
|
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
|
|
then
|
|
# New code, using lock files instead of copying /dev/console permissions
|
|
# This also works with non-gdm logins (e.g. on a virtual terminal)
|
|
# Idea and code from Nalin Dahyabhai <nalin@redhat.com>
|
|
CONSOLEOWNER=""
|
|
for conlock in \
|
|
/var/run/console.lock \
|
|
/var/run/console/console.lock \
|
|
/var/lock/console.lock
|
|
do
|
|
if [ -f "$conlock" ]; then
|
|
CONSOLEOWNER=$(cat $conlock)
|
|
fi
|
|
done
|
|
if [ -n "$CONSOLEOWNER" ]
|
|
then
|
|
chmod 0000 "${DEVICE}"
|
|
chown "$CONSOLEOWNER" "${DEVICE}"
|
|
chmod 0600 "${DEVICE}"
|
|
fi
|
|
fi
|