30 lines
801 B
Bash
Executable File
30 lines
801 B
Bash
Executable File
#!/bin/bash
|
|
|
|
CHECKPATCH=$(which checkpatch.pl 2> /dev/null)
|
|
|
|
if [ -z "$CHECKPATCH" ]; then
|
|
echo "checkpatch.pl (https://raw.githubusercontent.com/torvalds/linux/master/scripts/checkpatch.pl) not in \$PATH"
|
|
exit 1
|
|
fi
|
|
|
|
COMMON_IGNORE_FLAGS=SPLIT_STRING,SSCANF_TO_KSTRTO,NEW_TYPEDEFS,VOLATILE,INLINE,USE_FUNC,AVOID_EXTERNS,CONST_STRUCT
|
|
LIN_IGNORE_FLAGS=$COMMON_IGNORE_FLAGS
|
|
WIN_IGNORE_FLAGS=$COMMON_IGNORE_FLAGS,DOS_LINE_ENDINGS
|
|
|
|
if [ $(uname -s) = "Linux" ]; then
|
|
IGNORE_FLAGS=$LIN_IGNORE_FLAGS
|
|
else
|
|
IGNORE_FLAGS=$WIN_IGNORE_FLAGS
|
|
fi
|
|
|
|
CHECKPATCH_ARGS="--no-tree --no-summary --terse --show-types
|
|
--ignore $IGNORE_FLAGS"
|
|
|
|
if [ $# -eq 1 ]; then
|
|
$CHECKPATCH $CHECKPATCH_ARGS -f $1
|
|
else
|
|
find . -type f -iregex '.*\.\(c\|h\|cpp\|hpp\|cc\|hh\|cxx\|hxx\)' | \
|
|
xargs $CHECKPATCH $CHECKPATCH_ARGS -f
|
|
fi
|
|
|