#!/bin/sh

msg=
parse_attrs() {
	multival=
	case "$n" in
		*:m) multival=1 ;;
	esac
	n="${n%:*}"
}

export_multi() {
	local i= n="${1%=*}" v="${1#*=}"
	eval "i=\${$n:-0}"
	eval export "$n$i=\"\$v\""
	eval export "$n=$(($i+1))"
}

run() {
	local x s n l=
	local CMDLINE_PARAMS

	read CMDLINE </proc/cmdline
	export CMDLINE

	for x in /etc/initrd/*; do
		if [ -s "$x" ]; then
			. "$x"
			l="$l ${CMDLINE_PARAMS-}"
		fi
	done

	for x in $CMDLINE; do
		s="$(replace -s= "[a-z]-." "[A-Z]__" "$x")"
		for n in $l; do
			parse_attrs
			case "$s" in
				RW)	readonly=	;;
				RO)	readonly=1	;;
				$n)	export "$s=1"	;;
				$n=*)
					[ -n "$multival" ] &&
						export_multi "$s" ||
						export "$s"
					;;
			esac
		done
	done

	[ -z "$DEBUG" ] || QUIET=
	STOP=",$STOP,"
	IGNORE=",$IGNORE,"
}
