#!/bin/sh

nfsrootfs_enabled() {
	if [ ${bootparam_root} != "/dev/nfs" ] || [ -z ${bootparam_nfsroot} ]; then
		return 1
	fi
	return 0
}

nfsrootfs_run() {
	local nfs_opts
	local location
	local flags
	local server_ip

	nfs_opts=""
	if [ "${bootparam_nfsroot#*,}" != "${bootparam_nfsroot}" ]; then
		nfs_opts="-o ${bootparam_nfsroot#*,}"
	fi

	location="${bootparam_nfsroot%%,*}"
	if [ "${location#*:}" = "${location}" ]; then
		# server-ip not given. Get server ip from ip option
		server_ip=""
		if [ "${bootparam_ip#*:}" != "${bootparam_ip}" ]; then
			server_ip=$(echo "$bootparam_ip" | cut -d: -f2)
		fi

		if [ -z "$server_ip" ]; then
			fatal "Server IP is not set. Update ip or nfsroot options."
		fi
		location=${server_ip}:${location}
	fi

	flags="-o nolock"
	if [ -n "$bootparam_ro" ] && ! echo "$bootparam_rootflags" | grep -w -q "ro"; then
		if [  -n "$bootparam_rootflags" ]; then
			bootparam_rootflags="$bootparam_rootflags,"
		fi
		bootparam_rootflags="${bootparam_rootflags}ro"
	fi
	if [ -n "$bootparam_rootflags" ]; then
		flags="$flags -o $bootparam_rootflags"
	fi

	mount -t nfs ${flags} ${nfs_opts} ${location} ${ROOTFS_DIR}
}

