#!/bin/bash -efu
# SPDX-License-Identifier: GPL-3.0-or-later

. sh-functions

if [ -n "${RDSHELL_PASSWORD-}" ] && [ -n "${RDSHELL_COPY_PASSWORD_FROM_USER-}" ]; then
	fatal 'Options "RDSHELL_PASSWORD" and "RDSHELL_COPY_PASSWORD_FROM_USER" are mutually exclusive'
fi


case "${1-}" in
	files)
		;;
	dirs)
		DIR="$WORKDIR/root"

		mkdir -p -- "$DIR/etc/sysconfig"

		hash="${RDSHELL_PASSWORD-}"
		[ -z "${RDSHELL_COPY_PASSWORD_FROM_USER-}" ] ||
			hash="$(getent shadow "${RDSHELL_COPY_PASSWORD_FROM_USER-}" |cut -d: -f2)"

		for n in passwd shadow; do
			touch "$DIR/etc/$n"
			sed -i -e '/^root:/d' "$DIR/etc/$n"
		done

		printf 'root:x:0:0::/home/root:/bin/sh\n' >> "$DIR/etc/passwd"
		printf 'root:%s:13957::::::\n' "$hash"    >> "$DIR/etc/shadow"

		printf '%s\n' "$DIR"
		;;
esac
