#!/bin/sh

echo shutdown: "$@"

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

cd /
if [ ! -e /proc/mounts ]
then
	mkdir -p /proc
	mount  proc /proc -tproc
	umount_proc=1
else
	umount_proc=
fi

# remove an empty oldroot, that means we are not invoked from systemd-shutdown
rmdir /oldroot 2>/dev/null

set -x
for f in $( awk '/oldroot/ { print $2 }' < /proc/mounts | sort -r )
do
	umount $f
done
set +x

if test -s /run/fw_env -a -c /run/mtd:u-boot-env -a ! -e /image-u-boot-env &&
	! cmp /run/mtd:u-boot-env /run/fw_env
then
	ln -sn /run/fw_env /image-u-boot-env
fi

if test -x /update && ls /image-* > /dev/null 2>&1
then
	exec /update ${1+"$@"}
fi

echo Remaining mounts:
cat /proc/mounts

test "umount_proc" && umount /proc && rmdir /proc



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


echo "Execute ${1-reboot} -f if all unounted ok, or exec /init"

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