#!/bin/sh

update() {
  if [ -f /home/firmware.tgz ] ; then
    cd /home || exit 1
    update_log="/update-$(date -Iseconds).log"
    echo -- Update firmware -- | tee -a "$update_log" /dev/kmsg
    echo '   Please, wait. This can take some time' | tee -a "$update_log" /dev/kmsg

    rm -rf firmware

    if ( gunzip -c firmware.tgz | tar -x ) ; then
      echo Unpacked | tee -a "$update_log" /dev/kmsg

      if [ -x firmware/update ] ; then
        echo -- Start update -- | tee -a "$update_log" /dev/kmsg
        firmware/update | tee -a "$update_log" /dev/kmsg
        rm firmware/update
        if [ -x firmware/s30 ] ; then
          if [ -f firmware/base.db ] ; then
            rm -rf s30/* && mv firmware/* s30 && rm firmware.tgz && echo -- Done -- | tee -a "$update_log" /dev/kmsg
          fi
        fi
      fi

		fi
    rm -rf firmware
    rm firmware.tgz
		if [ -f /reboot_me_please ]; then
			rm -f /reboot_me_please
			sync
			reboot
			killall rcS
    fi
  fi
}

case "$1" in
  start)
    update
  ;;
  stop)
  ;;
  *)
    echo "Do or do not. There is no try"
    exit 1
  ;;
esac
