Here's the output of that command with 0.4.4:
/bin/sh -x /tmp/vconsole keyboard
+ '[' -r /etc/vconsole.conf ']'
+ . /etc/vconsole.conf
+ '[' -r /proc/cmdline ']'
++ cat /proc/cmdline
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ case "$1" in
+ '[' -n '' ']'
And here's with 0.4.2:
/bin/sh -x /tmp/vconsole keyboard
+ '[' -r /etc/vconsole.conf ']'
+ . /etc/vconsole.conf
+ '[' -r /proc/cmdline ']'
++ cat /proc/cmdline
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ for x in $(cat /proc/cmdline)
+ case "$x" in
+ case "$2" in
And here's the diff between 0.4.2 and 0.4.4
diff -u dinit-rc-0.4.2/scripts/vconsole dinit-rc-0.4.4/scripts/vconsole
--- dinit-rc-0.4.2/scripts/vconsole 2024-06-10 17:11:45.000000000 +0300
+++ dinit-rc-0.4.4/scripts/vconsole 2024-06-11 16:49:11.000000000 +0300
@@ -5,15 +5,15 @@
if [ -r /proc/cmdline ]; then
for x in $(cat /proc/cmdline); do
case "$x" in
- vconsole.keymap=*) KEYMAP="${KEYMAP}" ;;
- vconsole.font=*) FONT="${FONT}" ;;
- vconsole.font_map=*) FONT_MAP="${FONT_MAP}" ;;
- vconsole.font_unimap=*) FONT_UNIMAP="${FONT_UNIMAP}" ;;
+ vconsole.keymap=*) KEYMAP="${x#*=}" ;;
+ vconsole.font=*) FONT="${x#*=}" ;;
+ vconsole.font_map=*) FONT_MAP="${x#*=}" ;;
+ vconsole.font_unimap=*) FONT_UNIMAP="${x#*=}" ;;
esac
done
fi
-case "$2" in
+case "$1" in
"keyboard") [ -n "$KEYMAP" ] && loadkeys -q -u "${KEYMAP}" ;;
"console")
TTYS=${TTYS:-6}
It seems that it just skipped the case statement in 0.4.2 because $2 is always empty but in 0.4.3 it was changed to $1 like it should be but there's something going wrong in the case statement?