#!/bin/sh

CONFIG_MTD_NO=

check_mtd()
{
  local a b c d e
  cat /proc/mtd |
  while read a b c d; do
    # convert 'mtdxx:' to 'xx'
    e=${a%:*}
    [ $d = $1 ] && echo "${e#mtd}"
  done
}

mount_jffs2()
{
  local mtd_no=$1
  local device=/dev/mtdblock$mtd_no
  local dir="$2"

  mount -t jffs2 $device $dir \
    || { echo "error mounting jffs2 on '$device' as '$dir'"; return 1; }
}

recover_jffs2()
{
  local mtd_no=$1
  local device=/dev/mtd$mtd_no
  local dir="$2"

  echo "formating '$device' for jffs2"

  flash_erase --jffs $device 0 0
  mount_jffs2 $mtd_no "$dir"
}

case "$1" in
  start)
    # Get MTD partition number
    CONFIG_MTD_NO=$(check_mtd '"config"')

    mount_jffs2 $CONFIG_MTD_NO /config \
      || recover_jffs2 $CONFIG_MTD_NO /config

    # TODO(allanzhang): once DVT is gone, clear the hack below.
    if [ -h /config/tr69 ]; then
      echo "Upgrade from DVT image, potential corrupted jffs2, recover"
      umount /config
      recover_jffs2 $CONFIG_MTD_NO /config
    fi

    # /config must be writeable by non-root
    chown bin.sys /config
    chmod 775 /config

    if [ -e /config/DEBUG ]; then
      echo "Enabling DEBUG mode because /config/DEBUG is set." >&2
      echo >/tmp/DEBUG
    fi
    ;;
  stop)
    umount /config
    ;;
  restart|reload)
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}" >&2
    exit 1
esac
