#!/bin/sh

setup_console() {
	tty=${1%,*}
	speed=${1#*,}
	inittab="$2"
	securetty="$3"
	line=
	term="linux"
	[ "$speed" = "$1" ] && speed=115200

	case "$tty" in
	ttyS*|ttyAMA*|ttyUSB*|ttyMFD*)
		line="-L"
		term="vt100"
		;;
	tty0)
		# skip current console
		return 0
		;;
	esac
	# skip consoles already in inittab
	grep -q "^$tty:" "$inittab" && return

	echo "$tty::once:cat /etc/issue" >> "$inittab"
	echo "$tty::respawn:/sbin/getty -n -l /bin/sh $line $speed $tty $term" >> "$inittab"
	if ! grep -q -w "$tty" "$securetty"; then
		echo "$tty" >> "$securetty"
	fi
}

/bin/mount -t tmpfs tmpfs /mnt

/bin/cp -a / /mnt 2>/dev/null

/bin/mount -t proc -o noexec,nosuid,nodev proc /proc
for opt in $(cat /proc/cmdline); do
	case "$opt" in
	console=*)
		setup_console ${opt#console=} /mnt/etc/inittab /mnt/etc/securetty;;
	esac
done

exec /bin/busybox switch_root /mnt /sbin/init
