chiark / gitweb /
Merge keymap building in the top-level Makefile.am.
[elogind.git] / extras / keymap / check-keymaps.sh
1 #!/bin/bash
2
3 # check that all key names in keymaps/* are known in <linux/input.h>
4 KEYLIST=extras/keymap/keys.txt
5 RULES=extras/keymap/95-keymap.rules
6
7 [ -e "$KEYLIST" ] || {
8     echo "need $KEYLIST please build first" >&2
9     exit 1
10 }
11
12 missing=$(join -v 2 <(awk '{print tolower(substr($1,5))}' $KEYLIST | sort -u) <(awk '{print $2}' extras/keymap/keymaps/*|sort -u))
13 [ -z "$missing" ] || {
14     echo "ERROR: unknown key names in extras/keymap/keymaps/*:" >&2
15     echo "$missing" >&2
16     exit 1
17 }
18
19 # check that all maps referred to in $RULES exist
20 maps=$(sed -rn '/keymap \$name/ { s/^.*\$name ([^"[:space:]]+).*$/\1/; p }' $RULES)
21 for m in $maps; do
22     # ignore inline mappings
23     [ "$m" = "${m#0x}" ] || continue
24
25     [ -e extras/keymap/keymaps/$m ] || {
26         echo "ERROR: unknown map name in $RULES: $m" >&2
27         exit 1
28     }
29     grep -q "extras/keymap/keymaps/$m\>" Makefile.am || {
30         echo "ERROR: map file $m is not added to Makefile.am" >&2
31         exit 1
32     }
33 done