#! /bin/sh

FindAndAttachUBI() {
   partition=$1

   mtd_block_number=`cat /proc/mtd | grep -i $partition | sed 's/^mtd//' | awk -F ':' '{print $1}'`
   if [ -z "$mtd_block_number" ]; then
      echo "MTD : Partition $partition not found"
   else
      echo "MTD : Attaching UBI device /dev/mtdblock$mtd_bloc_number for $partition"

      ubiattach -m $mtd_block_number /dev/ubi_ctrl
      sleep 1
   fi
}

FindAndMountUBI () {
   volume=$1
   dir=$2

   echo "MTD : Looking for UBI volume : $dir for $volume"
   #mkdir -p $dir

   for ubidev in /dev/ubi[0-99]_*
   do
      volname=`ubinfo $ubidev | grep Name\: | awk '{print $2}'`
      if [ "$volname" == "$volume" ]; then
            mount -t ubifs $ubidev $dir -o bulk_read
            echo "MTD : Mounting of $ubidev on $dir done"
         break
      fi
   done
}

run_type=$1
      if [ "$1" == "attach" ]; then
            eval FindAndAttachUBI $2
      else
            eval FindAndMountUBI $2 $3
      fi