#!/bin/sh
#
# This script will be called during reboot procedure to allow firmware
# updates of files shiped via ftp.
#
#
#

# Turn off all leds except the red one.
echo 0 > /sys/bus/platform/drivers/galep5-ui/led1
echo 0 > /sys/bus/platform/drivers/galep5-ui/led2
echo 1 > /sys/bus/platform/drivers/galep5-ui/led3


BOOT_ERR_LOG=/var/log/fw-update.log


showPage()
{
  cat /bin/"$1".html > /mnt/fs/cfg/httpd/data/index.html 2>> $BOOT_ERR_LOG
  chmod 666 /mnt/fs/cfg/httpd/data/index.html
}


echo -en "Checking for ftp-firmware updates...\t\t" >>$BOOT_ERR_LOG
FILE_NAME=`ls /home/ftp/*.g5m 2>/dev/null 2>/dev/null`
if [ ! -z $FILE_NAME ]; then
  showPage fw-update
  echo "[UPDATE EXISTS] " >>$BOOT_ERR_LOG
  echo -en "  * Preparing...\t\t\t\t" >>$BOOT_ERR_LOG
  echo -n "[cleanup /lib/modules] " >>$BOOT_ERR_LOG
# We need more free space in ramdisk!
  rm -rf /lib/modules
  echo -n "[cleanup /tmp] " >>$BOOT_ERR_LOG
  rm -rf /tmp/*
  echo -n "[extracting] ">>$BOOT_ERR_LOG
#  showPage fw-update
  bzip2 -dc $FILE_NAME | tar -xf- -C /tmp 1>>$BOOT_ERR_LOG 2>>$BOOT_ERR_LOG
  echo "[done]" >>$BOOT_ERR_LOG
  echo -en "  * Cleanup...\t\t\t\t\t" >>$BOOT_ERR_LOG
  rm -f $FILE_NAME /tmp/update.tar.bz2 2>>$BOOT_ERR_LOG
  echo "[done]" >>$BOOT_ERR_LOG
  echo -en "  * Analyzing...\t\t\t\t" >>$BOOT_ERR_LOG
  UPDATE_DIR=`ls -d /tmp/update-* 2>>$BOOT_ERR_LOG`
  if [ ! -z $UPDATE_DIR ]; then
    echo "[$UPDATE_DIR]" >>$BOOT_ERR_LOG
    cd $UPDATE_DIR/sh 2>>$BOOT_ERR_LOG
    if [ -e ./update.sh ]; then
      echo >>$BOOT_ERR_LOG
      $UPDATE_DIR/sh/update.sh $UPDATE_DIR >>$BOOT_ERR_LOG 2>>$BOOT_ERR_LOG
    fi
  else
    echo "[ERROR]" >> $BOOT_ERR_LOG
  fi
else
  echo "[no updates]" >>$BOOT_ERR_LOG
fi

