#!/sbin/sh

var1=$1
var2=$2

tb_list="cat chmod chown cmp date dd df dmesg getevent getprop hd id ifconfig iftop insmod ioctl ionice kill ln log ls lsmod lsof mkdir mount mv nandread netstat newfs_msdos notify printenv ps reboot renice rm rmdir rmmod route schedtop sendevent setconsole setprop sleep smd start stop sync top umount uptime vmstat watchprops wipe"

if [ -f "$(dirname $0)/busybox" ] ;then
   if [ -f "$(dirname $0)/toolbox" ] ;then
      if [ ! -f /system/bin/toolbox ] ;then
      mv "$(dirname $0)/busybox" /system/bin/busybox
      bb=/system/bin/busybox
      install_dir=/system/bin
         elif [ ! -f /system/xbin/toolbox ] ;then
         mv "$(dirname $0)/busybox" /system/xbin/busybox
         bb=/system/xbin/busybox
         install_dir=/system/xbin
         fi
      elif [ ! -f "$(dirname $0)/toolbox" ] ;then
      bb="$(dirname $0)/busybox"
      install_dir="$(dirname $0)"
      fi
elif [ -f /system/xbin/busybox ] ;then
   if [ -f /system/xbin/toolbox ] ;then
   mv /system/xbin/busybox /system/bin/busybox
   bb=/system/bin/busybox
   install_dir=/system/bin
   else
   bb=/system/xbin/busybox
   install_dir=/system/xbin
   fi
elif [ -f /system/bin/busybox ] ;then
   if [ -f /system/bin/toolbox ] ;then
   mv /system/bin/busybox /system/xbin/busybox
   bb=/system/xbin/busybox
   install_dir=/system/xbin
   else
   bb=/system/bin/busybox
   install_dir=/system/bin
   fi
fi

if [ -n "$var1" ] && [ -n "$var2" ] ;then
   if [ "$(echo $var1 | $bb sed -e "s/^.*\(.\)$/\1/")" == "/" ] ;then
   var1=$(echo $var1 | $bb sed s'/.$//')
   fi
   if [ "$(echo $var2 | $bb sed -e "s/^.*\(.\)$/\1/")" == "/" ] ;then
   var2=$(echo $var2 | $bb sed s'/.$//')
   fi
   if [ -f "$var1" ] && [ -d "$var2" ] ;then
   bb="$var1"
   install_dir="$var2"
      elif [ -d "$var1" ] && [ -f "$var2" ] ;then
      bb="$var2"
      install_dir="$var1"
   fi
elif [ -z "$var1" ] && [ -n "$var2" ] || [ -z "$var2" ] && [ -n "$var1" ] ;then
exit
fi

chmod 0755 $bb

if [ -f /system/bin/toolbox ] && [ ! -h /system/bin/mount ] && [ ! -h /system/bin/kill ] ;then
tb_dir=/system/bin
elif [ -f /system/xbin/toolbox ] && [ ! -h /system/xbin/mount ] && [ ! -h /system/xbin/kill ] ;then
tb_dir=/system/xbin
fi

if [ "$3" == "rm-old-links" ] ;then
get_links=$($bb find $install_dir -type l)
   for del_link in $get_links ;do
   l_link=$($bb ls -l `echo $del_link`)
      if [ "`echo $l_link|$bb awk '{print $11}'|$bb grep busybox`" ] ;then
      $bb rm `echo $l_link|$bb awk '{print $9}'`
      fi
   done
fi

if [ -n "$bb" ] && [ -n "$install_dir" ] ;then
line_num=`$bb expr $($bb|$bb grep -n "Currently"|$bb cut -d: -f1) + 1`
tool_list=`$bb|$bb sed -n $line_num',$p'`
   for tool in $tool_list ;do
   tool=$(echo $tool|$bb sed 's/,//')
   $bb ln -s $bb $install_dir/$tool
   done

   if [ -n $tb_dir ] && [ -f $tb_dir/mount ] && [ -f $tb_dir/kill ] || [ -n $tb_dir ] && [ -h $tb_dir/mount ] && [ -h $tb_dir/kill ] ;then
      for del_file in $tb_list ;do
      $bb rm $tb_dir/$del_file
      done
   fi
   if [ -n $tb_dir ] ;then
      for t_tool in $tb_list ;do
      $bb ln -s $tb_dir/toolbox $tb_dir/$t_tool
      done
   fi

   if [ -h "$(dirname $0)/su" ] ;then
   $bb rm "$(dirname $0)/su"
   else
      if [ -h /system/xbin/su ] ;then
      $bb rm /system/xbin/su
      fi
      if [ -h /system/bin/su ] ;then
      $bb rm /system/bin/su
      fi
   fi

   if [ -f "$(dirname $0)/busybox" ] && [ "$(dirname $0)" != "/system/xbin" ] && [ "$(dirname $0)" != "/system/bin" ] ;then
      if [ -f /system/xbin/su ] ;then
      $bb ln -s /system/xbin/su "$(dirname $0)"
      exit
      fi
      if [ -f /system/bin/su ] ;then
      $bb ln -s /system/bin/su "$(dirname $0)"
      exit
      fi
   fi
   if [ -f /system/xbin/su ] ;then
   $bb ln -s /system/xbin/su /system/bin
   exit
   fi
   if [ -f /system/bin/su ] ;then
   $bb ln -s /system/bin/su /system/xbin/su
   exit
   fi
fi
