LeOS-Genesis/external/badvpn/ncd/parse_linux_input.sh

95 lines
2.0 KiB
Bash
Raw Normal View History

2020-10-05 13:12:00 +02:00
#!/bin/bash
INPUT=$1
OUTPUT=$2
types=""
keys=""
rels=""
abss=""
sws=""
mscs=""
leds=""
reps=""
snds=""
ffstatuss=""
while read LINE; do
tab=$'\t'
space="[ ${tab}]"
regex="^#define ((EV|KEY|BTN|REL|ABS|SW|MSC|LED|REP|SND|FF_STATUS)_[A-Z0-9_]+)${space}"
if [[ $LINE =~ $regex ]]; then
type=${BASH_REMATCH[2]}
name=${BASH_REMATCH[1]}
if [[ $type = "EV" ]]; then
if [[ $name != "EV_VERSION" ]]; then
types="${types} [${name}] = \"${name}\",
"
fi
elif [[ $type = "KEY" ]] || [[ $type = "BTN" ]]; then
if [[ $name != "KEY_MIN_INTERESTING" ]]; then
keys="${keys} [${name}] = \"${name}\",
"
fi
elif [[ $type = "REL" ]]; then
rels="${rels} [${name}] = \"${name}\",
"
elif [[ $type = "ABS" ]]; then
abss="${abss} [${name}] = \"${name}\",
"
elif [[ $type = "SW" ]]; then
sws="${sws} [${name}] = \"${name}\",
"
elif [[ $type = "MSC" ]]; then
mscs="${mscs} [${name}] = \"${name}\",
"
elif [[ $type = "LED" ]]; then
leds="${leds} [${name}] = \"${name}\",
"
elif [[ $type = "REP" ]]; then
reps="${reps} [${name}] = \"${name}\",
"
elif [[ $type = "SND" ]]; then
snds="${snds} [${name}] = \"${name}\",
"
elif [[ $type = "FF_STATUS" ]]; then
ffstatuss="${ffstatuss} [${name}] = \"${name}\",
"
fi
fi
done < "${INPUT}"
(
echo "
static const char *type_names[] = {
${types}};
static const char *key_names[] = {
${keys}};
static const char *rel_names[] = {
${rels}};
static const char *abs_names[] = {
${abss}};
static const char *sw_names[] = {
${sws}};
static const char *msc_names[] = {
${mscs}};
static const char *led_names[] = {
${leds}};
static const char *rep_names[] = {
${reps}};
static const char *snd_names[] = {
${snds}};
static const char *ffstatus_names[] = {
${ffstatuss}};
"
) >"${OUTPUT}"