#!/bin/sh

echo update: "$@"

export PS1=update-sh#\ 
# exec /bin/sh

cd /
if ! test -r /proc/mounts || ! test -f /proc/mounts
then
	mkdir -p /proc
	mount -t proc proc proc
fi
if ! test -d /sys/class
then
	mkdir -p /sys
	mount -t sysfs sys sys
fi
if ! test -c /dev/null
then
	mkdir -p /dev
	mount -t devtmpfs dev dev
fi
while grep mtd /proc/mounts
do
	echo 1>&2 "Error: A mtd device is mounted."
	sulogin
	# exec /bin/sh
done

findmtd() {
	m=$(grep -xl "$1" /sys/class/mtd/*/name)
	m=${m%/name}
	m=${m##*/}
	echo $m
}

rofs=$(findmtd rofs)
rwfs=$(findmtd rwfs)

rofst=squahsfs
rwfst=ext4

if test -n "$rwfs" && test -s whitelist
then

	mkdir -p rw
	mount /dev/mtdblock${rwfs#mtd} rw -oro -t $rwfst

	while read f
	do
		if ! test -e rw/cow/$f
		then
			continue
		fi
		d="save/cow/$f"
		mkdir -p "${d%/*}"
		cp -rp rw/cow/$f "${d%/*}/"
	done < whitelist

	umount rw
fi


for f in image-*
do
	m=$(findmtd ${f#image-})
	if test -z "$m"
	then
		echo 1>&2  "Unable to find mtd partiton for $f"
		exec /bin/sh
	fi
done

for f in image-*
do
	m=$(findmtd ${f#image-})
	echo "Updating ${f#image-}"
	# flasheraseall /dev/$m && dd if=$f of=/dev/$m
	flashcp -v $f /dev/$m
done


if test -d save/cow
then
	mount /dev/mtdblock${rwfs#mtd} rw -o rw -t $rwfst
	cp -rp save/cow/. rw/cow/
	umount rw
fi

# Execute the command systemd told us to ...
if test -d /oldroot && test -x "/sbin/$1" && test -f "/sbin/$1"
then
	if test "$1" == kexec
	then
		/sbin/$1 -f -e
	else
		/sbin/$1 -f
	fi
fi


echo "Execute ${1-reboot} -f if all is ok"

export PS1=update-sh#\ 
exec /bin/sh
