#!/bin/sh
# Copyright (C) 2011 O.S. Systems Software LTDA.
# Licensed on MIT

finish_enabled() {
	return 0
}

finish_run() {
	if [ -n "$ROOTFS_DIR" ]; then
		if [ ! -d $ROOTFS_DIR/dev ]; then
			fatal "ERROR: There's no '/dev' on rootfs."
		fi

		# Unmount anything that was automounted by busybox via mdev-mount.sh.
		# We're about to switch_root, and leaving anything mounted will prevent
		# the next rootfs from modifying the block device.  Ignore ROOT_DISK,
		# if it was set by setup-live, because it'll be mounted over loopback
		# to ROOTFS_DIR.
		local dev
		for dev in /run/media/*; do
			if mountpoint -q "${dev}" && [ "${dev##*/}" != "${ROOT_DISK}" ]; then
				umount -f "${dev}" || debug "Failed to unmount ${dev}"
			fi
		done

		info "Switching root to '$ROOTFS_DIR'..."

		debug "Moving /dev, /proc and /sys onto rootfs..."
		mount --move /dev $ROOTFS_DIR/dev
		mount --move /proc $ROOTFS_DIR/proc
		mount --move /sys $ROOTFS_DIR/sys

		cd $ROOTFS_DIR
		exec switch_root -c /dev/console $ROOTFS_DIR ${bootparam_init:-/sbin/init}
	else
		debug "No rootfs has been set"
	fi
}
