diff options
Diffstat (limited to 'scripts/check-coding-style.sh')
-rwxr-xr-x | scripts/check-coding-style.sh | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/scripts/check-coding-style.sh b/scripts/check-coding-style.sh new file mode 100755 index 0000000..5f1e3c3 --- /dev/null +++ b/scripts/check-coding-style.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# ---HELP--- +# to check kernel coding style of file(s): +# a) either pass a filename as cmdline parameter +# b) run without cmdline parameters and check all non third-party code +# ---HELP--- + +READLINK=$(which greadlink) +[ -z "$READLINK" ] && { + READLINK=$(which readlink) +} +SCRIPT_DIR=$(dirname "$($READLINK -f "$0")") +SCRIPT_FILE="$SCRIPT_DIR/check-coding-files.txt" +SOURCE_DIR_NAMES="rtrlib tools tests" +EXIT_CODE=0 +if [ -z "$1" ] ; then + for dir in ${SOURCE_DIR_NAMES}; do + normalized_dir=$($READLINK -f "${SCRIPT_DIR}/../${dir}") + CHECKSOURCE+=" $(find ${normalized_dir} -name '*.c' -or -name '*.h')" + done +else + CHECKSOURCE=$($READLINK -f "$1") +fi +cd $SCRIPT_DIR/.. +for i in $CHECKSOURCE; do + echo "> check coding style of $i ..." + IGNORE="PREFER_KERNEL_TYPES,CONST_STRUCT,OPEN_BRACE,SPDX_LICENSE_TAG,OPEN_ENDED_LINE,UNNECESSARY_PARENTHESES,PREFER_PRINTF,GLOBAL_INITIALISERS,PREFER_PACKED,BOOL_MEMBER,STATIC_CONST_CHAR_ARRAY,LONG_LINE_STRING" + if [[ $i == *"unittest"* ]]; then + IGNORE="${IGNORE},CAMELCASE" + fi + $SCRIPT_DIR/checkpatch.pl -f --strict --no-tree --terse --show-types \ + --max-line-length 120 --ignore ${IGNORE} $i + + if [ $? -ne "0" ]; then + EXIT_CODE=1 + fi +done + +exit $EXIT_CODE |