#!/bin/sh
echo $#
if [ $# -ne 3 ]; then
    echo "---------err1---------"
  echo "should have three params: 1:sda 2:add or remove 3:utf8,gb2312 "
    exit 1
fi

echo "UDEV = $1 ACTION = $2 CHARSET_TMP = $3"

UDEV=$1 
ACTION=$2
CHARSET_TMP=$3

if [ "$CHARSET_TMP" == "utf8" ];then
  CHARSET=utf8
elif [ "$CHARSET_TMP" == "gb2312" ];then
  CHARSET=cp936
elif [ "$CHARSET_TMP" == "iso8859-1" ];then
  CHARSET=iso8859-1
else
  CHARSET=""
fi

echo $CHARSET

USBBASE=/storage
#-----lwj add begin----#
if [ "$ACTION" == "add" ]; then
  UDEV_TMP=sd
  DEVNUM=`cat /proc/partitions | grep $UDEV_TMP | wc -l`
#sgrey  UDEV=`cat /proc/partitions | grep sd | awk '{print $4}' | sed -n '1p'`
fi
echo "UDEV=$UDEV"
#-----lwj add end-------#

if [ "$ACTION" == "add" ];then
# DEVNUM=`cat /proc/partitions | grep $UDEV | wc -l`
  echo "Partition num = [$DEVNUM-1]"
  if [ $DEVNUM -gt 1 ]; then
    j=2
    echo "j=$j"
    for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
    do
        echo $i               
        if [ ${j} -gt $DEVNUM ];then          
            break
        fi        
      
      DEVPATH=`fdisk -l | grep $UDEV${i} | awk '{print $1}' | sed -n '1p'`
      echo "DEVPATH=$DEVPATH"
      if [ -z $DEVPATH  ]; then
        continue
      else
        j=`expr $j + 1`
      fi
      
      BOOTFLAG=`fdisk -l | grep $DEVPATH | awk '{print $2}' | sed -n '1p'`
      if [ "$BOOTFLAG" = "*" ]; then
           DEVTYPE=`fdisk -l | grep $DEVPATH | awk '{print $6}' | sed -n '1p' `
      else
               DEVTYPE=`fdisk -l | grep $DEVPATH | awk '{print $5}' | sed -n '1p'`
          fi
      
      if [ "$DEVTYPE" =  "5" ] || [ "$DEVTYPE" = "f" ] || [ "$DEVTYPE" =  "85" ]
      then
          echo "FileSystem [EXTENDED] mount [NoNeed]"
          MOUNT_FLAG=0
      else
        MOUNT_FLAG=1
      fi
#sgrey              echo "Mount flag", $MOUNT_FLAG >> /tmp/mount.log
#sgrey              echo "Device type", $DEVTYPE >> /tmp/mount.log
        if [ $MOUNT_FLAG -eq 1 ];then
         if [ "$DEVTYPE" = "4" ] || [ "$DEVTYPE" = "6" ] || [ "$DEVTYPE" = "b" ] || [ "$DEVTYPE" = "c" ] || [ "$DEVTYPE" = "e" ] || [ "$DEVTYPE" = "ef" ]
       then   
          echo -n "FileSystem [FAT16 or FAT32 ]"
            for U_WIN_DIR in c d e f g h i j k l m n o p q r #C D E F G H I J K L
          do
#sgrey            if [ -z "`mount |grep $UDEV|awk '{print $3}'| grep /$U_WIN_DIR`" ];then
#sgrey              break;
#sgrey            fi
            if [ -z "`mount |grep /dev/sd|awk '{print $3}'| grep /$U_WIN_DIR`" ];then
              break;
            fi
          done
            mkdir -p "$USBBASE/$U_WIN_DIR"
   #         echo "Make dir",$USBBASE/$U_WIN_DIR >> /tmp/mount.log
          if [ "$CHARSET" != "" ];then
                   mount -t vfat -o shortname=mixed -o iocharset=$CHARSET  "$DEVPATH" "$USBBASE/$U_WIN_DIR" && echo "mount OK" || mount -t tntfs  "$DEVPATH" "$USBBASE/$U_WIN_DIR"
                    else
             mount -t vfat -o shortname=mixed "$DEVPATH" "$USBBASE/$U_WIN_DIR"  &&  echo " mount [OK]" || mount -t tntfs  "$DEVPATH" "$USBBASE/$U_WIN_DIR"
          fi
          
        elif [ "$DEVTYPE" = "7" ];then
            echo -n "FileSystem [NTFS]"
            for U_WIN_DIR in c d e f g h i j k l m n o p q r #C D E F G H I J K L
          do
#sgrey            if [ -z "`mount |grep $UDEV|awk '{print $3}'| grep /$U_WIN_DIR`" ];then
#sgrey              break;
#sgrey            fi
            if [ -z "`mount |grep /dev/sd|awk '{print $3}'| grep /$U_WIN_DIR`" ];then
              break;
            fi

          done
            mkdir -p "$USBBASE/$U_WIN_DIR"
          if [ "$CHARSET" != "" ];then
            mount -t tntfs -o iocharset=$CHARSET  "$DEVPATH" "$USBBASE/$U_WIN_DIR" || mount "$DEVPATH" "$USBBASE/$U_WIN_DIR" && echo "mount OK" ||echo "mount FAIL"
          else
           mount -t tntfs  "$DEVPATH" "$USBBASE/$U_WIN_DIR" || mount "$DEVPATH" "$USBBASE/$U_WIN_DIR" && echo "mount OK" ||echo "mount FAIL"
          fi

        elif [ "$DEVTYPE" = "82" ]  ||  [ "$DEVTYPE" = "83" ]  ||  [ "$DEVTYPE" = "8e" ]
        then
            echo -n "FileSystem [  EXT2 or EXT3 ]"
            for U_WIN_DIR in c d e f g h i j k l m n o p q r#C D E F G H I J K L
          do
#sgrey            if [ -z "`mount |grep $UDEV|awk '{print $3}'| grep /$U_WIN_DIR`" ];then
#sgrey              break;
#sgrey            fi
            if [ -z "`mount |grep /dev/sd|awk '{print $3}'| grep /$U_WIN_DIR`" ];then
              break;
            fi
          done
            mkdir -p "$USBBASE/$U_WIN_DIR"
          if [ "$CHARSET" != "" ];then
              mount  "$DEVPATH" "$USBBASE/$U_WIN_DIR" && echo " mount [OK]" || echo " mount [FAIL]"
          else
            mount  "$DEVPATH" "$USBBASE/$U_WIN_DIR" && echo " mount [OK]" || echo " mount [FAIL]"
          fi
        fi
          fi
    done

      else  
      U_WIN_DIR=c #C
      mkdir -p "$USBBASE/$U_WIN_DIR"
#     if [ "$CHARSET" != "" ];then      
#       mount -t auto -o iocharset=$CHARSET "/dev/$UDEV" "$USBBASE/c" && echo "mount ok" || mount -t auto "/dev/$UDEV" "$USBBASE/c"
#     else
#         mount -t  auto "/dev/$UDEV" "$USBBASE/c"
#     fi
      mount -t vfat -o shortname=mixed "/dev/$UDEV" "$USBBASE/c" || mount -t tntfs  "/dev/$UDEV" "$USBBASE/c" || mount "/dev/$UDEV" "$USBBASE/c"
      fi
   
else
#sgrey  RMDIR=`mount|grep /dev/sd |awk '{print $3}'`
#sgrey  umount `mount|grep /dev/sd |awk '{print $3}'` 
#sgrey  rmdir $RMDIR && echo "rmdir [OK]" || echo "rmdir [FAIL]"
  RMDIR=`mount|grep $UDEV |awk '{print $3}'`
  umount `mount|grep $UDEV |awk '{print $3}'` 
  rmdir $RMDIR && echo "rmdir [OK]" || echo "rmdir [FAIL]"
fi
