#!/bin/bash
# 16 Oct 2003 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

for i in 1 2 3 4
do

  export BUSNO=$i
  #grep "^T:[ ]*Bus=0*$BUSNO" /proc/bus/usb/devices >> $LOGFILE || break
  LINE=$(grep "^T:[ ]*Bus=0*$BUSNO" /proc/bus/usb/devices | tail -n 1) || break
  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

  if [ "$LINE" != "" -a "$DEVNO" != "001" ] ;then
	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
  fi

done

sleep 1                       ;# to aboid multiple call
exit