#!/bin/sh
scriptname=$(basename "$0")

set -e
set -u

cleanup_images_mount() {
	test -n "${images_mount:-}" || \
		return 0

	test -d "${images_mount}" || \
		return 0

	! mountpoint -q "${images_mount}" || \
		umount "${images_mount}" || \
			return $?

	rm -rf "${images_mount}"
}

cleanup_config_mount() {
	test -n "${config_mount:-}" || \
		return 0

	test -d "${config_mount}" || \
		return 0

	! mountpoint -q "${config_mount}" || \
		umount "${config_mount}" || \
			return $?

	rm -rf "${config_mount}"
}

cleanup() {
	result=$?
	test ${result} -eq 0 || \
		echo "${scriptname}: [ERROR] Failed to reset password!" 1>&2

	cleanup_config_mount || \
		echo "${scriptname}: [WARNING] Failed to cleanup config mount" 1>&2

	cleanup_images_mount || \
		echo "${scriptname}: [WARNING] Failed to cleanup images mount" 1>&2
}

trap cleanup EXIT

images_mount=$(mktemp -d)
config_mount=$(mktemp -d)

mount /dev/disk/by-label/IMAGES "${images_mount}"
mount "${images_mount}"/config.img "${config_mount}"
rm -f "${config_mount}"/{passwd,shadow,group}*
# Done during cleanup
#umount "${config_mount}"
#umount "${images_mount}"
printf "%s: \e[0;32mdone!\e[0;m\n" "${scriptname}"
