mkconfig.sh 1.95 KB
Newer Older
longpanda's avatar
longpanda committed
1
2
3
4
5
6
#!/bin/sh

# 
# Configfiles are from grubfilemanager project
#

7
8
cfgfile=keyboard_layout.c
rm -f ${cfgfile}
longpanda's avatar
longpanda committed
9
10

cat >>$cfgfile << EOF
11
12
13

#define ventoy_keyboard_set_layout(name) if (grub_strcmp(layout, #name) == 0) return ventoy_keyboard_layout_##name()

longpanda's avatar
longpanda committed
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
menuentry QWERTY_USA --class=debug_kbd {
    setkey -r
    setkey -d
}
EOF

ls -1 cfg | while read line; do
    kbd=${line%.cfg}
    name=${kbd#KBD_}
    
    echo "menuentry $name --class=debug_kbd {" >> $cfgfile
    grep '^setkey' cfg/$line >>$cfgfile    
    echo "}" >> $cfgfile   
done

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
dos2unix $cfgfile
sed 's/menuentry \([^ ]*\) .*/static void ventoy_keyboard_layout_\1(void) {/g' -i $cfgfile
sed 's/setkey *-r/grub_keymap_reset();/g' -i $cfgfile
sed 's/setkey *-d/grub_keymap_disable();/g' -i $cfgfile
sed 's/setkey *-e/grub_keymap_enable();/g' -i $cfgfile
sed 's/^setkey  *\([^ ]*\)  *\([^ ]*\)/grub_keymap_add_by_string("\1", "\2");/g' -i $cfgfile

rm -f .tmpfunc
echo "void ventoy_set_keyboard_layout(const char *layout);" >> .tmpfunc
echo "void ventoy_set_keyboard_layout(const char *layout) {" >> .tmpfunc
grep 'void *ventoy_keyboard_layout_' $cfgfile | while read line; do
    name=$(echo $line | sed 's/.*ventoy_keyboard_layout_\(.*\)(.*/\1/g')
    echo "ventoy_keyboard_set_layout($name);" >> .tmpfunc
done

echo "}" >> .tmpfunc

cat .tmpfunc >> $cfgfile
rm -f .tmpfunc

rm -f ../GRUB2/SRC/grub-2.04/grub-core/term/$cfgfile
cp -a $cfgfile ../GRUB2/SRC/grub-2.04/grub-core/term/$cfgfile





############
#
# cfg
#############

cfgfile=../INSTALL/grub/keyboard.cfg
rm -f ${cfgfile}

echo "submenu \"Keyboard Layouts\" --class=debug_krdlayout {" >>$cfgfile

cat >>$cfgfile << EOF
    menuentry QWERTY_USA --class=debug_kbd {
        set_keyboard_layout QWERTY_USA
    }
EOF

ls -1 cfg | while read line; do
    kbd=${line%.cfg}
    name=${kbd#KBD_}
    
    echo "    menuentry $name --class=debug_kbd {" >> $cfgfile
    echo "        set_keyboard_layout $name" >> $cfgfile
    echo "    }" >> $cfgfile   
done

longpanda's avatar
longpanda committed
81
82
echo "}" >>$cfgfile

83
84