#! /bin/sh
#
# update-step-5 <compressed-tarball>
#
# Deploy the tarball content on the new partition.
#
# Logilin 2020 - All right reserved.

PARTITION_NAME_FILE="/tmp/partition"
UPDATE_MNT="/tmp/mnt"
TARBALL="$1"

echo 0 > /proc/sys/kernel/hung_task_timeout_secs

partition=$(/bin/cat "${PARTITION_NAME_FILE}")

cd "${UPDATE_MNT}/"

if ! /bin/tar xvf "${TARBALL}"
then
	echo "Error when extracting ${TARBALL}" >&2
	cd /
	umount "${UPDATE_MNT}"
	exit 1
fi

USR_SHADOW_FILE="/data/config/shadow"
for USR in control players reboot
do
	if [ -f "${USR_SHADOW_FILE}" ]
	then
		sed -i -e "/^${USR}:/d" "${UPDATE_MNT}/etc/shadow"
		sed -n -e "/^${USR}:/p" "${USR_SHADOW_FILE}" >> "${UPDATE_MNT}/etc/shadow"
	fi

	if [ -f "/data/config/${USR}_authorized_keys" ]
	then
		mkdir -p "${UPDATE_MNT}/home/${USR}/.ssh"
		cp "/data/config/${USR}_authorized_keys" "${UPDATE_MNT}/home/${USR}/.ssh/authorized_keys"
		chown ${USR}:${USR} "${UPDATE_MNT}/home/${USR}/.ssh/authorized_keys"
		chmod 0600 "${UPDATE_MNT}/home/${USR}/.ssh/authorized_keys"
		chown ${USR}:${USR} "${UPDATE_MNT}/home/${USR}/.ssh"
		chmod 0700 "${UPDATE_MNT}/home/${USR}/.ssh"
	fi
done

if ! grep "^control:" "${UPDATE_MNT}/etc/shadow"
then
	echo 'control:$5$CR0hhbCp$bQ6vfVK6VRntntaGIfNUOyFgSYXr9n66AlcFPMhvOf9::::::' >> "${UPDATE_MNT}/etc/shadow"
fi

if ! grep "^players:" "${UPDATE_MNT}/etc/shadow"
then
	echo 'players:$5$lyHCNcyI$bE5vjijoMRjtoU8pUPhlA/coNGjguEzq.XwPonMN865::::::' >> "${UPDATE_MNT}/etc/shadow"
fi

if ! grep "^reboot:" "${UPDATE_MNT}/etc/shadow"
then
	echo 'reboot:$5$uN2KmNlD$CEcz4/cxfBPHOaJbneLA5S/Bao3P.pzFMT1FoEl8xR9::::::' >> "${UPDATE_MNT}/etc/shadow"
fi

exit 0
