All pastes #626852 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-07-19 22:34 UTC
rendered paste body
#!/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