#!/bin/sh
################################################################################
#      This file is part of OpenELEC - http://www.openelec.tv
#      Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
#  OpenELEC is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 2 of the License, or
#  (at your option) any later version.
#
#  OpenELEC is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with OpenELEC.  If not, see <http://www.gnu.org/licenses/>.
################################################################################

get_target() {
  for arg in $(cat /proc/cmdline); do
    case $arg in
      disk=*)
        disk="${arg#*=}"
        case $disk in
          LABEL=*)
            label="${disk#*=}"
            target=`blkid -L $label`
            ;;
          UUID=*)
            uuid="${disk#*=}"
            target=`blkid -U $uuid`
            ;;
          /*)
            target=$disk
            ;;
        esac
        ;;
    esac
  done
}

if [ -f /storage/.cache/reset_oe ] ; then
  # hard reset
  rm -f /storage/.cache/reset_oe
  get_target
  if [ ! -z $target ] ; then
    echo "hard resetting..."
    umount /storage
    mke2fs -t ext4 -m 0 $target 2>&1 >/dev/null
    if [ ! -z $label ] ; then
      tune2fs -U random -L $label $target
    fi
    if [ ! -z $uuid ] ; then
      tune2fs -U $uuid $target
    fi
    echo "done"
    sleep 5
  fi
elif [ -f /storage/.cache/reset_xbmc ] ; then
  # soft reset
  rm -f /storage/.cache/reset_xbmc
  get_target
  if [ ! -z $target ] ; then
    echo "soft resetting..."
    rm -rf /storage/.??* 2>&1 >/dev/null
    echo "done"
    sleep 5
  fi
fi
sync
reboot -f
