#!/bin/bash
# 15 Dec 2002 Makaski Shinomiya <shino@pos.to>
# this script shall be called from murasaki
#LOGFILE=/tmp/murasaki.log
LOGFILE=/dev/console
echo "$0 $1" > $LOGFILE
echo -n "Called at " >> $LOGFILE
date >> $LOGFILE

[ "$1" = "start" ] || exit

MYNAME=$(basename $0)
[ "$(/sbin/pidof $MYNAME)" = "" ] || exit ;# to aboid multiple call

for i in run lock
do
  if [ -f /var/$i/console.lock ]; then
    USER=$(cat /var/$i/console.lock)
    break
  fi
done

LINE=$(grep -B 10 'Camera' /proc/bus/usb/devices | grep '^T:' | tail -n 1)
echo "$LINE" >> $LOGFILE
BUSNO=$(echo "$LINE" | sed -e 's/^.*Bus=[^0-9]*//' -e 's/[^0-9].*//')
case $BUSNO in
	[0-9][0-9]) BUSNO="0$BUSNO" ;;
	[0-9])      BUSNO="00$BUSNO" ;;
esac
DEVNO=$(echo "$LINE" | sed -e 's/^.*Dev#=[^0-9]*//' -e 's/[^0-9].*//')
case $DEVNO in
	[0-9][0-9]) DEVNO="0$DEVNO" ;;
	[0-9])      DEVNO="00$DEVNO" ;;
esac

echo "Bus number   : $BUSNO" >> $LOGFILE
echo "Device number: $DEVNO" >> $LOGFILE
echo "Console user : $USER" >> $LOGFILE
[ "$BUSNO" = "" ] && exit 1
[ "$DEVNO" = "" ] && exit 1
[ "$USER"  = "" ] && exit 1

[ "USER" = "" ] && exit
chown "$USER" /proc/bus/usb/$BUSNO/$DEVNO  >> $LOGFILE 2>&1

sleep 1                       ;# to aboid multiple call
exit
