#!/bin/sh
SYS_DIR=/sys/block/sd
DEV_NODE=/dev/sd
USB_FOLDER=/media/USB
PART_NUM=/mnt/tmpfs/.usb_num
DBG_FILE=/mnt/tmpfs/usb_debug
DEV_NUM=a
env >> ${DBG_FILE}
#export >> ${DBG_FILE}
checkSYS_1()
{
t=0
while [ 1 ]
do
b=0
for DEV_NUM in a b
do
if [ -d ${SYS_DIR}${DEV_NUM} ]; then
#echo "find ${SYS_DIR}${DEV_NUM}" > /dev/ttyS0
b=1;
break;
fi
done
if [ ${b} -eq 1 ]; then
#echo "out from checkSYS" > /dev/ttyS0
break;
fi
t=`expr $t + 1`
if [ ${t} -ge 5 ]; then
echo "no ${SYS_DIR}" > /dev/ttyS0
break;
fi
done
}
#get lock
echo -ne "\x1" >/dev/xlock
UNIONFS_SCRIPT=/etc/hotplug/union_hotplug
if [ ! -e $UNIONFS_SCRIPT ] ; then UNIONFS_SCRIPT = "" ; fi
if [ "$ACTION" = "add" -a "$SUBSYSTEM" = "scsi" ];then
checkSYS_1 &
wait
if [ -d ${SYS_DIR}${DEV_NUM} ] ; then
echo "add scsi" >> ${DBG_FILE}
sleep 1 &
wait
i=0
echo "${i}" > ${PART_NUM}
for i in 1 2 3 4 5 6 7 8
do
if [ -d ${SYS_DIR}${DEV_NUM}/sd${DEV_NUM}${i} ] ; then
echo "${i}" > ${PART_NUM}
#echo "primary partition ${i}" > /dev/ttyS0
fi
done
fi
/usr/local/bin/osdplug.hotplug --scan-plugins --dev-path ${DEVPATH} >> ${DBG_FILE}
if [ "$?" = "0" ]; then
# osdplug mounted the device
echo "OSDPLUG mount successful" >> ${DBG_FILE}
sleep 10 &
wait
/usr/local/plugins/osdplug/ipod.fuse /mnt/tmpfs/media/ipod/ 2&1 >> ${DBG_FILE}
else
echo "OSDPLUG mount FAILED" >> ${DBG_FILE}
# mount the partitions
i=`cat ${PART_NUM}`
if [ ${i} -eq 0 ]; then
if [ ! -d ${USB_FOLDER} ] ; then
mkdir -p ${USB_FOLDER}
fi
mount -w ${DEV_NODE}${DEV_NUM} ${USB_FOLDER} -o noatime
if [ ! "$?" = "0" ]; then
rmdir ${USB_FOLDER}
else
if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB ADD ; fi
fi
elif [ ${i} -eq 1 ]; then
if [ ! -d ${USB_FOLDER} ] ; then
mkdir -p ${USB_FOLDER}
fi
mount -w ${DEV_NODE}${DEV_NUM}${i} ${USB_FOLDER} -o noatime
if [ ! "$?" = "0" ]; then
rmdir ${USB_FOLDER}
else
if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB ADD ; fi
fi
else
n=0
j=1
while [ ${j} -le ${i} ]
do
if [ ${n} -eq 0 ]; then
if [ ! -d ${USB_FOLDER} ] ; then
mkdir -p ${USB_FOLDER}
fi
mount -w ${DEV_NODE}${DEV_NUM}${j} ${USB_FOLDER} -o noatime
if [ ! "$?" = "0" ]; then
rmdir ${USB_FOLDER}
else
if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB ADD ; fi
n=`expr $n + 1`
echo "${n}" > ${PART_NUM}
fi
else
if [ ! -d ${USB_FOLDER}${n} ] ; then
mkdir -p ${USB_FOLDER}${n}
fi
mount -w ${DEV_NODE}${DEV_NUM}${j} ${USB_FOLDER}${n} -o noatime
if [ ! "$?" = "0" ]; then
rmdir ${USB_FOLDER}${n}
else
if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB ADD ${n} ; fi
n=`expr $n + 1`
echo "${n}" > ${PART_NUM}
fi
fi
j=`expr $j + 1`
done
fi
#NVKEY_USBCONNECT x33
echo -ne "\x33" >/dev/neuros_ir
fi
fi
if [ "$ACTION" = "remove" -a "$SUBSYSTEM" = "scsi" ]; then
if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB DEL ; fi
umount -f ${USB_FOLDER}
rmdir ${USB_FOLDER}
i=`cat ${PART_NUM}`
if [ ${i} -gt 1 ]; then
i=`expr $i - 1`
j=1
while [ ${j} -le ${i} ]
do
if [ ! "${UNIONFS_SCRIPT}" = "" ] ; then ${UNIONFS_SCRIPT} USB DEL ${j} ; fi
umount -f ${USB_FOLDER}${j}
rmdir ${USB_FOLDER}${j}
j=`expr $j + 1`
done
fi
echo -ne "\x32" >/dev/neuros_ir
rm -f ${PART_NUM}
fi
#release lock
echo -ne "\x0" >/dev/xlock
exit 1