#!/bin/sh
# ***********************************************************
#              Backupscript nach Methode niovs
#              wird vom Addon-Manager aufgerufen
#
#           kann beliebig für jede Box weitert werden
#
#           angepasst fuer Fortis-Boxen by Bauernbub
# ***********************************************************

filename=$1
rebootnow=$2

# check for saved settings
if [ ! -e /var/etc/restore.cfg ]; then
  # make a default and say all yes
  settings=n
  binarys=n
  camconfig=n
  plugins=n
  network=n
  samba=n
  bilder=n
  sonstige=n
  addonmanager=y
  backup=y
else
. /var/etc/restore.cfg   # read config from Addon-Manager
fi

echo -e "***********************************************************"
echo -e "**********Wiederherstellung VU Plus oder Dreambox**********"
echo -e "***********************************************************\n"

boxtyp="`cat /proc/stb/info/model`"

if [ "$filename" ]; then
  BOXDIR="$filename"
else
  if [ "$boxtyp" == "dm8000" ]
    then
      BOXDIR="backup_vu"
    else
      BOXDIR="backup_fortis"
  fi
fi

if [ `mount | grep "on /var/swap" | wc -l` -ge 1 ]; then DIR="/var/swap/$BOXDIR"; fi
if [ `mount | grep "on /media/hdd" | wc -l` -eq 1 ]; then DIR="/media/hdd/$BOXDIR"; fi

rm -f $DIR/restore.log ; touch $DIR/restore.log

# Neustart nach Flashinstallation, restore AM
if [ -e /var/swap/backup/.firstrun ] || [ -e /media/hdd/backup/.firstrun ] ; then
  if [ -e $DIR/restore.cfg ]; then
    . $DIR/restore.cfg
  else
    settings=n
    binarys=n
    camconfig=n
    plugins=n
    network=n
    samba=n
    bilder=n
    sonstige=n
    addonmanager=y
    backup=y
  fi
fi


if [ "$plugins" = "y" ]
 then
 if [ -d $DIR/pakete ]
  then
   ipkg install  $DIR/pakete/*.ipk
   ipkg update
   for i in `cat $DIR/ipkg.list ` ; do ipkg install $i ; done
     echo -e "******** Plugins wiederhergestellt ********\n"
 elif [ -e $DIR/ipkg.list ]
  then
   ipkg update
   for i in `cat $DIR/ipkg.list ` ; do ipkg install $i ; done
     echo -e "******** IPK-Plugins wiederhergestellt ********\n"
 else
   echo -e "******** Kein Backup der IPK-Plugins vorhanden! ********\n"
 fi
 if [ -e $DIR/plugins.tar ]
  then
      tar -xvf $DIR/plugins.tar -C / >> $DIR/restore.log
      echo -e "******** Extension/Plugins wiederhergestellt ********\n"
  else
      echo -e "******** Kein Backup der Plugins vorhanden! ********\n"
 fi
fi

if [ "$network" = "y" ]
 then
 if [ -e $DIR/network.tar ]
  then
      tar -xvf $DIR/network.tar -C / >> $DIR/restore.log
      echo -e "******** Netzwerkkonfiguration wurde wiederhergestellt ********\n"
  else
      echo -e "******** Kein Backup der Netzwerkkonfiguration vorhanden! ********\n"
 fi
fi


if [ "$samba" = "y" ]
 then
 if [ -e $DIR/samba.tar ]
  then
      tar -xvf $DIR/samba.tar -C / >> $DIR/restore.log
      echo -e "******** Sambakonfiguration wurde wiederhergestellt ********\n"
  else
      echo -e  "******** Kein Backup der Sambakonfiguration vorhanden! ********\n"
 fi
fi

if [ "$bilder" = "y" ]
 then
 if [ -e $DIR/bilder.tar ]
  then
      tar -xvf $DIR/bilder.tar -C / >> $DIR/restore.log
      echo -e "******** Bootbilder und das Radiobild wurde wiederhergestellt ********\n"
  else
      echo -e "******** Kein Backup der Bootbilder und des Radiobildes vorhanden! ********\n"
 fi
fi

if [ "$sonstige" = "y" ]
 then
 if [ -e $DIR/sonstige.tar ]
  then
      tar -xvf $DIR/sonstige.tar -C / >> $DIR/restore.log
      echo -e "******** sonstige Konfigurationsdateien wurden wiederhergestellt ********\n"
  else
      echo -e "******** Kein Backup der sonstigen Konfigurationsdateien vorhanden! ********\n"
 fi
fi

if [ "$camconfig" = "y" ]
 then
 if [ -e $DIR/camconfig.tar ]
	then
     	tar -xvf $DIR/camconfig.tar -C / >> $DIR/restore.log
			echo -e "******** Camconfig wurde wiederhergestellt ********\n"
  else
	  	echo -e "******** Kein Backup der Camconfig vorhanden! ********\n"
 fi
fi

if [ "$binarys" = "y" ]
 then
 if [ -e $DIR/bin.tar ]
	then
     	tar -xvf $DIR/bin.tar -C / >> $DIR/restore.log
			echo -e "******** Binarys wurde wiederhergestellt ********\n"
  else
	  	echo -e "******** Kein Backup der Binarys vorhanden! ********\n"
 fi
fi

if [ "$addonmanager" = "y" ]; then
 if [ -e $DIR/am.tar ]
	then
     	tar -xvf $DIR/am.tar -C / >> $DIR/restore.log
			echo -e "******** AddonManager wurde wiederhergestellt ********\n"
  else
	  	echo -e "******** Kein Backup vom AddonManager vorhanden! ********\n"
 fi
fi

if [ "$settings" = "y" ]
 then
 if [ -e $DIR/settings.tar ]
  then
      if [ $rebootnow ]; then
        echo -e "******** Settings und Automounts wiederhergestellt ********\n"
        echo -e "********************************************"
        echo -e "******** Box wird nun neu gestartet ********\n"
        echo -e "********************************************"
        sleep 3
        init 4 # kill enigma
        tar -xvf $DIR/settings.tar -C / >> $DIR/restore.log
        reboot -f  # reboot, make the settings resistant
      else
        tar -xvf $DIR/settings.tar -C / >> $DIR/restore.log
      fi
  else
      echo -e "******** Kein Backup der Settings vorhanden! ********\n"
  fi
fi

exit 0
