#!/bin/sh

# update_rootfs.sh

next_rootfs_num=$1
next_boot_switch=$2

old_img_tar=/data/update/last_rootfs${next_boot_switch}.ubi.tgz
lazy_rootfs=$(cat lazy_rootfs.txt)

echo "update_rootfs.sh"

if [ "$lazy_rootfs" = 1 ] && diff rootfs.ubi.tgz $old_img_tar
then
	echo "lazy_rootfs aktiviert und rootfs.ubi.tgz stimmt mit bestehendem rootfs auf der Ziel-Partition ueberein, daher wird rootfs nicht erneut geflasht!"

	# attach und mount trotzdem notwendig, da unten in jedem Fall die user settings kopiert werden muessen und es auch fuer das anschliessende application update verfuegbar sein muss
	if ! ubiattach /dev/ubi_ctrl -m ${next_rootfs_num} -O 2048
	then
		echo "ERROR: Konnte /dev/mtd${next_rootfs_num} nicht attachen!"
		exit 1
	fi

	MP=/mnt/inactive_rootfs
	mkdir -p $MP
	if ubinfo /dev/ubi2 &> /dev/null
	then
		if ! mount -t ubifs ubi2:rootfs $MP
		then
			echo "ERROR: Konnte /dev/mtd${next_rootfs_num} nicht mounten auf $MP"
			exit 1
		fi
	else
	if ! mount -t ubifs ubi1:rootfs $MP
		then
			echo "ERROR: Konnte /dev/mtd${next_rootfs_num} nicht mounten auf $MP"
			exit 1
		fi
	fi
else
	if ! ./write_rootfs.sh rootfs.ubi.tgz $next_rootfs_num $next_boot_switch
	then
		exit 1
	fi
fi

./copy_user_settings.sh

