#!/sbin/sh
#
# flash recovery
#

ZIP=$3
OUTFD=$2
if [ -n "$2" ];then
  readlink /proc/$$/fd/$OUTFD 2>/dev/null | grep /tmp >/dev/null
  if [ "$?" -eq "0" ]; then
    # rerouted to log file, we don't want our ui_print commands going there
    OUTFD=0

    # we are probably running in embedded mode, see if we can find the right fd
    # we know the fd is a pipe and that the parent updater may have been started as
    # 'update-binary 3 fd zipfile'
    for FD in `ls /proc/$$/fd`; do
      readlink /proc/$$/fd/$FD 2>/dev/null | grep pipe >/dev/null
      if [ "$?" -eq "0" ]; then
        ps | grep " 3 $FD " | grep -v grep >/dev/null
        if [ "$?" -eq "0" ]; then
          OUTFD=$FD
          break
        fi
      fi
    done
  fi
  ui_print() {
    echo -n -e "ui_print $1\n" >> /proc/self/fd/$OUTFD
    echo -n -e "ui_print\n" >> /proc/self/fd/$OUTFD
  }
else
  ui_print() {
    echo "$1"
  }
fi

# start
ui_print " "
ui_print "********************************"
ui_print "*           LR.Team"
ui_print "*        TWRP installer"
ui_print "********************************"
ui_print " "
ui_print "  Version:  3.3.1-1101"
ui_print "  Device:   Redmi K20 Pro"
ui_print "  Compiler: wzsx150"
ui_print "  Date:     20191101"
ui_print " "
ui_print "********************************"
ui_print " "
ui_print "Flashing the recovery image..."
ui_print " "

flashimg="recovery-TWRP-3.3.1-1101-REDMI_K20PRO-CN-wzsx150.img"
recoverypart=`find /dev/block -name recovery | grep "by-name/recovery" -m 1 2>/dev/null`

if [ -n "$recoverypart" ];then
  cd /tmp
  mkdir -p wzsx150
  cd wzsx150
  unzip -o "$ZIP"
  
  dd if=/tmp/wzsx150/"$flashimg"  of="$recoverypart"  ||  ui_print "ERROR! flash failed.\n"

else
  ui_print "ERROR! not find recovery partition."
  ui_print "Failed!"
  
fi

ui_print " "
ui_print "********************************"
ui_print "Done!"
ui_print " "

rm -rf /tmp/wzsx150

exit 0
