#!/bin/bash -efu

NAMES=' '
eval_names()
{
	while read -r n v; do
		[ -n "${n##*=*}" ] ||
			continue
		if [ -n "$v" ] && [ -z "${v##*\"}" ] && [ -z "${v%%\"*}" ]; then
			v="${v#\"}"
			v="${v%\"}"
		fi
		if [ -n "$v" ] && [ -z "${v##*\'}" ] && [ -z "${v%%\'*}" ]; then
			v="${v#\'}"
			v="${v%\'}"
		fi
		eval "$n=\"\$v\""
		[ -z "${NAMES##* $n *}" ] || NAMES="$NAMES$n "
	done
}

eval_names <<EOF
CONSOLE_BACKSPACE
CONSOLE_FONT
CONSOLE_FONT_UNIMAP
CONSOLE_GRP_TOGGLE
CONSOLE_KEYMAP
CONSOLE_TTYS
CONSOLE_UNICODE
EOF

eval_names <<EOF
`	sed -rn \
		-e 's#^[[:space:]]*SYSFONT=#CONSOLE_FONT       #p' \
		-e 's#^[[:space:]]*UNIMAP=#CONSOLE_FONT_UNIMAP #p' \
		/etc/sysconfig/consolefont
`
EOF

eval_names <<EOF
`	sed -rn \
		-e 's#^[[:space:]]*KEYTABLE=#CONSOLE_KEYMAP           #p' \
		-e 's#^[[:space:]]*(BACKSPACE|GRP_TOGGLE)=#CONSOLE_\1 #p' \
		/etc/sysconfig/keyboard
`
EOF

eval_names <<EOF
`	sed -rn \
		-e 's#^[[:space:]]*LANG=[^#[:space:]]+\.(utf-8|UTF-8)[[:space:]]*$#CONSOLE_UNICODE 1#p' \
		/etc/sysconfig/i18n
`
EOF

eval_names <<EOF
${KBD_KEYMAP:+             CONSOLE_KEYMAP      $KBD_KEYMAP}
${KBD_BACKSPACE:+          CONSOLE_BACKSPACE   $KBD_BACKSPACE}
${KBD_GRP_TOGGLE:+         CONSOLE_GRP_TOGGLE  $KBD_GRP_TOGGLE}
${KBD_FONT:+               CONSOLE_FONT        $KBD_FONT}
${KBD_FONT_UNIMAP:+        CONSOLE_FONT_UNIMAP $KBD_FONT_UNIMAP}
${KBD_TTYS:+               CONSOLE_TTYS        $KBD_TTYS}
${KBD_UNICODE:+            CONSOLE_UNICODE     $KBD_UNICODE}
EOF

for n in $NAMES; do
	eval "v=\"\$$n\""
	printf '%s=\"%s\"\n' "$n" "$v"
done
