oscam-2.26.01-11942-802-wit.../devtools/check_config_tables.sh

52 lines
1.7 KiB
Bash
Raw Normal View History

#!/bin/sh
FILES="oscam-config-global.c oscam-config-account.c oscam-config-reader.c"
echo "** Checking config tables stored in: $FILES"
if [ ! -f globals.h ]
then
echo "ERROR: Run this script in the oscam source directory (where globals.h file is)."
exit 1
fi
check_int() {
DEF=$1
TYPE=$2
echo "== Checking $DEF -> config parser expects '$TYPE' type but globals.h is THE CORRECT ONE"
for VAR in `cat $FILES | grep $DEF | grep -w OFS | tr -d ' \t' | cut -d\( -f3 | cut -d\) -f1`
do
[ $VAR = "cacheex.maxhop" ] && continue
awk '{print $1 " " $2 }' globals.h | grep -vE "^[#/]" | sed -e 's|;||g' | grep -w $VAR | while read Z
do
if [ "$TYPE $VAR" != "$Z" ]
then
printf "globals.h: %-32s | config: $TYPE $VAR\n" "$Z"
fi
done
done
}
check_int DEF_OPT_INT8 int8_t
check_int DEF_OPT_UINT8 uint8_t
check_int DEF_OPT_INT32 int32_t
check_int DEF_OPT_UINT32 uint32_t
echo "== Checking DEF_OPT_STR (strings) -> config parser expects 'char *' type"
for VAR in `cat $FILES | grep DEF_OPT_STR | grep OFS | awk '{print $3}' | sed "s|OFS(||;s|)||;s|,||"`
do
grep -w $VAR globals.h | grep -vwE "(\*$VAR|#include)" | grep -w --color $VAR
done
echo "== Checking DEF_OPT_SSTR (static strings) -> config parser expects 'char[x]'"
for VAR in `cat $FILES | grep DEF_OPT_SSTR | grep OFS | awk '{print $3}' | sed "s|OFS(||;s|)||;s|,||"`
do
grep -w $VAR globals.h | grep -vE "(\[|#define)" | grep -w --color $VAR
done
echo "== Checking DEF_OPT_HEX (arrays) -> config parser expects 'uint8_t[x]' type"
for VAR in `cat $FILES | grep DEF_OPT_HEX | grep OFS | awk '{print $3}' | sed "s|OFS(||;s|)||;s|,||"`
do
grep -w $VAR globals.h | grep -vw uint8_t | grep -w --color $VAR
done